java对象和JSON之间转换
JSON解析器:
*常见的解析器:jsonlib,gson,fastjson,jackson
下⾯以jackson为例
⼀.Java对象转换JSON
1.使⽤步骤:
1.导⼊jackson的相关jar包
jackson-annotations-2.2.3.jar,jackson-core-2.2.3.jar,jackson-databind-2.2.3.jar
2.创建jackson核⼼对象 ObjectMapper
3.调⽤ObjectMapper的相关⽅法进⾏转换
转换⽅法:
1.writeValue(参数1,obj)
参数1说明:
File:将obj对象转换为JSON字符串,并保存到指定的⽂件中
Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中
OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中
2.writeValueAsString(obj):将对象转换为json字符串
eg
public class JacksonTest {
//java对象转为JSON字符串
@Test
public void test1() throws IOException {
Person p = new Person();
p.setName("张三");
p.setAge(23);
p.setGender("男");
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(new File("/"), p);
String json = mapper.writeValueAsString(p);
System.out.println(json);
}
}
注解讲解
当javabean对象中如果有Date类型字段,那么转换成json 就变成了时间戳格式,这是不希望看到的
json转换对象因此引出两个注解
1.@JsonIgnore :如果不希望转换此字段,可以在javabean对象的字段上加此注解,那么这个字段就不会被转换了
2.@JsonFormat(pattern = “yyyy-MM-dd”) :按此格式格式化这个字段
⼆.JSON转换java对象
调⽤ObjectMapper对象的readValue⽅法
eg
@Test
public void test6() throws IOException {
String json = "{\"name\":\"张三\",\"age\":23,\"gender\":\"男\"}";
ObjectMapper mapper = new ObjectMapper();
Person person = adValue(json, Person.class);
System.out.println(person);
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论