基本转换
1、对象转json字符串
jsonObject.toJSONString();//jsonObject直接转json字符串
JSON.toJSONString(user);//User对象转json字符串
2、json字符串转对象
JSON.parseObject(jsonStr);//转jsonObject对象
JSON.parseObject(jsonStr,User.class);//转具体的某一对象
3、json字符串转数组
JSONObject.parseArray(jsonStr, Device.class);
4、json字符串转map
Map<String,Object> temp= (Map<String, Object>) JSON.parse(jsonStr);
fastjson使用时遇到的问题
1、方法中定义的局部类,不能进行对象与json字符串的转换
eg:
public class A {
private String name;
@Data
class B{
Integer houseId;
}
}
2、类中的属性没有get方法时,不能被转成json字符串
解决办法
1、将局部类改为静态嵌套类
eg:
public class A {
private String name;
}
@Data
static class B{
Integer houseId;
}
}
2、在类中属性加上get方法
原因
1、内部类无法实例化,导致fastjson反序列化失败
2、转对象的过程中,需要按照getName,getId等bean的方法去获取bean的存在get方法的成员变量名