Java对象转JSON
Java对象转为JSON也罢, 或者是JSON转为JAVA对象也罢, 都需要使用到JSON解析器
JSON解析器:
常见的JSON解析器如下:
Jsonlib
- java官方的关于解析json数据的一个接口的实现类
Gson
- 谷歌提供的一个JSON解析器
Fastjson
- 阿里巴巴提供的一个JSON解析器
Jackson
- SpringMVC中内置的一个JSON解析器
- 因为我们后期肯定是要学习SpringMVC的, 所以我们就主要学习这个Jackson解析器
Java对象转为JSON
使用步骤:
- 导入Jackson的相关jar包
- 创建Jackson核心对象: ObjectMapper类型的对象
- 调用ObjectMapper的相关方法进行转换
Java对象封装为JSON的方法:
-
writeValueAsString(obj)
- 将对象obj转为json字符串
-
writeValue(参数1, 参数2)
-
writeValue(OutPutStream os, Object obj)
- 将obj对象转为json字符串之后, 使用OutPutStream字节输出流将数据输出到对应的节点文件中
代码举例:
先创建一个Person类对象(JavaBean)
- JavaBean的特点:
- 类是公共的
- 提供公共的无参构造方法
- 提供get()和set()方法
package com.ffyc.domain;
//类是公共的
public class Person {
private String name;
private int age;
private String gender;
//公共的无参构造方法
public Person(){
}
//提供get()和set()
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
}
然后给出转换的代码:
public class JacksonTest{
//java对象转为JSON对象
@Test
public void test(){
//1. 创建person对象
person p = new Person();
p.setName("张三");
p.setAge(23);
p.setGender("男");
//2. jackson的核心对象ObjectMapping
ObjectMapper mapper = new ObjectMapper();
//3. 转换
String json = mapper.writeValueAsString(p);
System.out.println(json);
//下面就是分别调用三种writeValue()的重载方法
mapper.writeValue(new File("d://a.txt"),p);
mapper.writeValue(new FileWriter("d://b.txt"),p);
mapper.writeValue(new FileInputStream("d://c.txt"),p);
//调用了这三种方法之后我们可以发现在d盘中就会分别出现a.txt和b.txt和c.txt文件, 其中就是保存的转换之后的json数据
}
}