java 生成json与解析_Java中生成和解析JSON
包的导入Springboot会自动包含AndroidStudio中在build.gradle中的dependencies添加implementation 'com.fasterxml.jackson.core:jackson-core:2.10.0'implementation'com.fasterxml.jackson.core:jackson-databind:2.10.0'对象的生成MAPP
包的导入
Springboot会自动包含
AndroidStudio中在build.gradle中的dependencies添加
implementation 'com.fasterxml.jackson.core:jackson-core:2.10.0'implementation'com.fasterxml.jackson.core:jackson-databind:2.10.0'
对象的生成
MAPPER.writeValueAsString(object);
完整代码
public staticString toJson(Object pojo) {try{
String data=MAPPER.writeValueAsString(pojo);returndata;
}catch(JsonProcessingException ex) {
ex.printStackTrace();
}return null;
}
对象的解析
接受参数为字符串
MAPPER.readValue(data,beanType)
其中beanType是比如Student.class
完整代码
public static T toPojo(String data, ClassbeanType) {try{returnMAPPER.readValue(data, beanType);
}catch(Exception e) {
e.printStackTrace();
}return null;
}
解析List的对象
public static List toList(String data, ClassbeanType) {
JavaType javaType= MAPPER.getTypeFactory().constructParametricType(List.class, beanType);try{
List list =MAPPER.readValue(data, javaType);returnlist;
}catch(Exception ex) {
ex.printStackTrace();
}return null;
}
解析复杂对象
比如类
class POJO{
String hello;
String hi;
String good;
Integer yes;
Object pay;
}
如何解析pay呢?
1.简单方法
先获取pay的JSON字符串
new ObjectMapper().writeValueAsString(userCmd.getPayload());
然后根据 类型使用toPojo或者toList
其他注意事项
如果json字符串中的属性个数小于java对象中的属性个数,可以顺利转换,java中多的那个属性为null
如果json字符串中出现java对象中没有的属性,则在将json转换为java对象时会报错:Unrecognized field, not marked as ignorable
解决方法:
在目标对象的类级别上添加注解:@JsonIgnoreProperties(ignoreUnknown = true);
java对象名和json中名不一致时解决方法:
在目标对象的字段级别上添加注解:@JsonProperty(value = "name")
更多推荐
所有评论(0)