22.5 JSON_解析器jackson_Java对象转换
- JSON解析器:
- 常见的解析器: Jsonlib,Gson,fastjson,jackson
- JSON转为Java对象:
- 1.导入jackson的相关jar包(D:\CodeSoft\Source_File\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的相关方法进行转换。
readValue(json字符串数据,Class)
- Java对象转换JSON:
- 使用步骤:
- 1.导入jackson的相关jar包;
- 2.创建Jackson核心对象 ObjectMapper;
- 3.调用ObjectMapper的相关方法进行转换。
- 转换方法:
writeValue(参数1,obj)
- 参数 1:
- File:将obj对象转换为JSON字符串,并保存到指定的文件中;
- Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中;
- OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中;
writeValueAsString(obj)
:将对象转为json字符串。
- 注解:
- @JsonIgnore:排除属性。
- @JsonFormat:属性值得格式化
@JsonFormat(pattern = "yyyy-MM-dd")
- 复杂 java对象转换:
- 示例:
package com.xww.web.test;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.xww.web.domain.Person;
import org.junit.Test;
import java.io.FileWriter;
import java.util.*;
public class JacksonTest {
@Test
public void test1() throws Exception {
Person p = new Person();
p.setName("xww");
p.setAge(22);
p.setGender("男");
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(p);
mapper.writeValue(new FileWriter("d://b.txt"),p);
}
@Test
public void test2() throws Exception {
Person p = new Person();
p.setName("xww");
p.setAge(22);
p.setGender("男");
p.setBirthday(new Date());
List<Person> ps = new ArrayList<Person>();
ps.add(p);
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(ps);
System.out.println(json);
}
@Test
public void test3() throws Exception {
Map<String,Object> map = new HashMap<String,Object>();
map.put("name","xww");
map.put("age",22);
map.put("gender","男");
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(map);
System.out.println(json);
}
@Test
public void test5() throws Exception {
String json = "{\"gender\":\"男\",\"name\":\"xww\",\"age\":22}";
ObjectMapper mapper = new ObjectMapper();
Person person = mapper.readValue(json, Person.class);
System.out.println(person);
}
}