java对象转json
json解析器:
常见的解析器:Jsonlib,Gson,fastjson,jackson
使用步骤:
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字符串
Person对象实体类:
public class Person {private String name;private int age;private String gender;@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +", gender='" + gender + '\'' +'}';}public Person() {}public Person(String name, int age, String gender) {this.name = name;this.age = age;this.gender = gender;}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;} }
java转json字符串
//java对象转为JSON字符串 @Testpublic void test1() throws Exception {//1、创建Person对象Person p = new Person();p.setName("张三");p.setAge(20);p.setGender("男");//2、创建Jackson的核心对象, ObjectMapperObjectMapper mapper = new ObjectMapper();//3、转换/*转换:writeValue(参数1,obj);参数1:File:将obj对象转换诶JSON字符串,并保存到指定的文件中Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中writeValueAsString(obj):将对象转为json字符串*/String json = mapper.writeValueAsString(p);System.out.println(json);//writeValue:将数据写到文件中 // mapper.writeValue(new File("G://r.txt"),p);mapper.writeValue(new FileWriter("G://r.txt"),p);}
java对象转json—注解
@JsonIgnore:排除属性
Person类:
public class Person {private String name;private int age;private String gender;@JsonIgnoreprivate Date birthday;
测试:
@Testpublic void test2() throws Exception {//1、创建Person对象Person p = new Person();p.setName("张三");p.setAge(20);p.setGender("男");p.setBirthday(new Date());//转换ObjectMapper mapper = new ObjectMapper();String json = mapper.writeValueAsString(p);System.out.println(json);}
@JsonFormat:格式化属性
public class Person {private String name;private int age;private String gender;@JsonFormat(pattern = "yyyy-MM-dd")private Date birthday;
再次运行性测试方法
java对象转json—List&Map
List集合:
@Testpublic void test3() throws Exception {//1、创建Person对象Person p = new Person();p.setName("张三");p.setAge(20);p.setGender("男");p.setBirthday(new Date());Person p1 = new Person();p1.setName("张三");p1.setAge(20);p1.setGender("男");p1.setBirthday(new Date());Person p2 = new Person();p2.setName("张三");p2.setAge(20);p2.setGender("男");p2.setBirthday(new Date());//创建list集合List<Person> list = new ArrayList<>();list.add(p);list.add(p1);list.add(p2);//转换ObjectMapper mapper = new ObjectMapper();String json = mapper.writeValueAsString(list);System.out.println(json);}
Map集合:
@Testpublic void test4() throws Exception {//1、创建Map对象HashMap<String, Object> map = new HashMap<>();map.put("name","张三");map.put("age","23");map.put("gender","男");//转换ObjectMapper mapper = new ObjectMapper();String json = mapper.writeValueAsString(map);System.out.println(json);}