使用JackSon将Object(LinkHashMap)转成POJO

来源:互联网 发布:羊绒 知乎 编辑:程序博客网 时间:2024/06/08 11:43


    接口返回了一个自己封装实体类,将实体类转化成JSON传给了客户端。客户端用JackSon将其重新转化实体类。而这个实体类中有一个属性是另外一个实体类。

    比如:

public class User(){    private Integer Id;    private String UserName;    private String PassWord;    .......    .......    (get,set)}

public class myObj{  private String A;  private User  B;    ......  ......  (get,set)}


string json = XXXX; //这是接口给我们返回的myObj data = objectMapper.readValue(json, myObj.class);


    这个时候,JackSon的readvalue()方法并不会将这个属性(User)转成POJO,而且会报错。

    这是因为,关于User对象的Json字符串会被JackSon转成LinkHashMap类型,而myObj没有LinkHashMap这个类型的属性,所以自然会报错了。

    怎么解决,我有一个容易想到的解决方法;把myObj类的User属性换成Object属性,这样就不会报错了。
     

public class myObj{  private String A;  private Object  B;    ......  ......  (get,set)}

    然后,如果想使用B的时候将Object再转换成User。 当然,没有强转的方法。可以使用jackson来转:

User user= objectMapper.convertValue(data.getB(),User.class);
这样就OK了。



public class User(){ private Integer Id; private String UserName; private String PassWord; ....... ....... (get,set
公共类用户()私有整数Id;私人字符串的用户名;私人密码字符串;....... .......(获取、设置
阅读全文
0 0
原创粉丝点击