String字符串转换为实体对象

将一个String字符串转换为实体对象

LibraryGdsFaxingCatgDTO类

public class LibraryGdsFaxingCatgDTO {
    /**
     * 层级展示
     */
    private String hierarchy;
    /**
     * 发行分类总数据
     */
    private List<LibraryDataDTO> data;


    public String getHierarchy() {
        return hierarchy;
    }

    public void setHierarchy(String hierarchy) {
        this.hierarchy = hierarchy;
    }

    public List<LibraryDataDTO> getData() {
        return data;
    }

    public void setData(List<LibraryDataDTO> data) {
        this.data = data;
    }

LibraryDataDTO类

public class LibraryDataDTO {
    /**
     * 首页分类名称
     */
    private String name;
    /**
     * 分类编码
     */
    private String code;
    /**
     * 是否展示
     */
    private String isShow;
    /**
     * 递归子类
     */
    private List<LibraryDataDTO> children;

测试类

@Test
    public void Test2(){
        //String str = dictApi.getDictMsg(AgentConstants.GDS_FAXING_CATG, AgentConstants.GDS_FAXING_CATG_MSG).getDictShortName();
        String s="{\"hierarchy\":\"4\",\"data\":[{\"name\":\"教材\",\"code\":\"4009,4011,4012\",\"isShow\":\"0\",\"children\":[{\"name\":\"配套教材\",\"code\":\"4009\",\"children\":[],\"isShow\":\"0\"},{\"name\":\"学历教育教材\",\"code\":\"4011\",\"children\":[],\"isShow\":\"0\"},{\"name\":\"培训教材\",\"code\":\"4012\",\"children\":[],\"isShow\":\"0\"}]},{\"name\":\"参考书\",\"code\":\"4006\",\"isShow\":\"1\",\"children\":[{\"name\":\"参考书\",\"code\":\"4006\",\"children\":[],\"isShow\":\"0\"}]},{\"name\":\"科普书\",\"code\":\"4017\",\"isShow\":\"1\",\"children\":[{\"name\":\"科普\",\"code\":\"4017\",\"children\":[],\"isShow\":\"0\"}]},{\"name\":\"考试用书\",\"code\":\"4010\",\"isShow\":\"1\",\"children\":[{\"name\":\"考试用书\",\"code\":\"4010\",\"children\":[],\"isShow\":\"0\"}]}]}";
        LibraryGdsFaxingCatgDTO dto = JSONObject.parseObject(s,LibraryGdsFaxingCatgDTO.class);
        System.err.println(dto.getHierarchy());
    }

切记!!!
字符串中的一些属性要和实体类中的属性值一致

Java中,将一个字符串转换实体类的过程通常称为反序列化。这个过程可以根据不同的数据格式采取多种方式实现,例如从JSON字符串、XML字符串或者其他特定结构的字符串还原出对应的Java对象。 下面我们将重点讨论基于最常见的一种情况——从JSON字符串转换Java实体类(POJO)。这里会涉及到两个主流库:Jackson和FastJSON。 ### Jackson 实现 #### 引入依赖 首先你需要引入Jackson的相关依赖包: ```xml <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.13.0</version> </dependency> ``` #### 创建实体类 User.java 假设我们有一个简单的用户信息类User: ```java public class User { private String name; private int age; // Getter and Setter methods omitted for brevity } ``` #### 反序列化代码示例 现在我们可以把一段描述用户的JSON字符串转换为我们刚刚定义的User类型的实例了: ```java import com.fasterxml.jackson.databind.ObjectMapper; public class JsonToPojoExample { public static void main(String[] args) throws Exception{ String jsonString = "{\"name\":\"张三\",\"age\":25}"; ObjectMapper mapper = new ObjectMapper(); User user = mapper.readValue(jsonString, User.class); System.out.println(user.getName()); System.out.println(user.getAge()); } } ``` 上述例子展示了如何利用ObjectMapper读取JSON文本并将其映射到指定的目标类上。 ### FastJSON 实现 同样地也可以选择使用Alibaba开源项目提供的fastjson来进行相同的任务。 #### 添加依赖项 如果你还没有添加过fastjson的话,记得先加进去你的pom.xml文件里头去。 ```xml <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.76</version> </dependency> ``` #### 使用样例 然后就可以按照以下的方式轻松地完成转换啦! ```java import com.alibaba.fastjson.JSON; public class MainClass { public static void main(String []args){ String jsonStr="{\"name\":\"李四\", \"age\":30}"; User u=(User)JSON.parseObject(jsonStr,User.class); System.out.print(u.getName()+" "+u.getAge()); } } class User{ String name; Integer age; /* Getters & Setters */ } ``` 以上就是关于怎样在Java程序里面把Json形式的数据变换成对应模型的一些简单介绍了 。当然除了这两种之外还有其他更多的方案可供挑选比如 Gson等等但是它们的基本原理都是差不多的即都需要明确知道目标类型才能准确无误得恢复出来正确的实例内容 。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值