建立实体类
user
package com.jock168.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import java.time.LocalDate;
@JsonPropertyOrder({"age", "user_name"})
public class User {
@JsonProperty("user_name")
private String name;
@JsonProperty("age")
private int age;
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
private LocalDate birth;
@JsonIgnore
private String gender;
public User() {
}
public User(String name, int age, LocalDate birth) {
this.name = name;
this.age = age;
this.birth = birth;
}
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 LocalDate getBirth() {
return birth;
}
public void setBirth(LocalDate birth) {
this.birth = birth;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
", birth=" + birth +
'}';
}
}
student
package com.open.entity;
public class Student {
private int id;
private String name;
private int age;
private String gender;
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", gender='" + gender + '\'' +
'}';
}
public Student() {
}
public Student(int id, String name, int age, String gender) {
this.id = id;
this.name = name;
this.age = age;
this.gender = gender;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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实现json格式转字符串和字符串转json
package com.open.test;
import com.open.entity.Student;
import org.json.JSONObject;
import org.junit.Test;
public class JsonTest {
@Test
public void testJsonToStudent() {
String json = "{\"gender\":\"男\",\"name\":\"张三\",\"id\":1,\"age\":20}";
JSONObject object = new JSONObject(json);
Student student = new Student();
student.setId(object.getInt("id"));
student.setName(object.getString("name"));
student.setAge(object.getInt("age"));
student.setGender(object.getString("gender"));
System.out.println(student);
}
@Test
public void testStudentToJson() {
Student student = new Student(1, "张三", 20, "男");
JSONObject object = new JSONObject(student);
String json = object.toString();
System.out.println(json);
}
}
gson
package com.xianopen.test;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import com.xianopen.entity.Student;
import org.junit.Test;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class GsonTest {
@Test
public void testJsonToMap() {
String json = "{\"1\":{\"id\":1,\"name\":\"张三\",\"age\":20},\"2\":{\"id\":2,\"name\":\"李四\",\"age\":21},\"3\":{\"id\":3,\"name\":\"王五\",\"age\":22},\"4\":{\"id\":4,\"name\":\"赵六\",\"age\":23}}";
Gson gson = new Gson();
Map<Integer, Student> map = gson.fromJson(json, new TypeToken<Map<Integer, Student>>() {
}.getType());
System.out.println(map);
}
@Test
public void testMapToJson() {
Map<Integer, Student> stus = new HashMap<>();
stus.put(1, new Student(1, "张三", 20));
stus.put(2, new Student(2, "李四", 21));
stus.put(3, new Student(3, "王五", 22));
stus.put(4, new Student(4, "赵六", 23));
String json = new Gson().toJson(stus);
System.out.println(json);
}
@Test
public void testJsonToList() {
String json = "[{\"id\":1,\"name\":\"张三\",\"age\":20},{\"id\":2,\"name\":\"李四\",\"age\":21},{\"id\":3,\"name\":\"王五\",\"age\":22},{\"id\":4,\"name\":\"赵六\",\"age\":23}]";
Gson gson = new Gson();
List list = gson.fromJson(json, new TypeToken<List<Student>>(){}.getType());
System.out.println(list);
System.out.println(list.size());
System.out.println(list.get(0));
}
@Test
public void testListToJson() {
List<Student> stus = new ArrayList<>();
stus.add(new Student(1, "张三", 20));
stus.add(new Student(2, "李四", 21));
stus.add(new Student(3, "王五", 22));
stus.add(new Student(4, "赵六", 23));
Gson gson = new Gson();
String json = gson.toJson(stus);
System.out.println(json);
}
@Test
public void testReflact() throws Exception {
Class<Student> clazz = Student.class;
Student stu = clazz.getDeclaredConstructor().newInstance();
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
System.out.println(field.getName());
field.setAccessible(true);
if (field.getName().equals("id")) {
field.set(stu, 5);
}
if (field.getName().equals("name")) {
field.set(stu, "王五");
}
}
System.out.println(stu);
}
@Test
public void testJsonToStudent() {
String json = "{\"id\":1,\"name\":\"张三\",\"age\":18}";
Gson gson = new GsonBuilder().create();
Student student = gson.fromJson(json, Student.class);
System.out.println(student);
}
@Test
public void testStudentToJson() {
Student student = new Student();
Gson gson = new Gson();
String json = gson.toJson(student);
System.out.println(json);
}
}
fastjson
package com.jock168.test;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.jock168.entity.User;
import org.junit.Test;
import java.util.*;
public class FastJsonTest {
@Test
public void testMapToJSON() {
Map<Integer, User> map = new HashMap<>();
map.put(1, new User("张三", 18, new Date()));
map.put(2, new User("李四", 20, new Date()));
String json = JSON.toJSONString(map);
System.out.println(json);
Map<Integer, User> users = JSON.parseObject(json, new TypeReference<Map<Integer, User>>() {
});
System.out.println(users);
}
@Test
public void testListToJSON() {
List<User> users = new ArrayList<>();
users.add(new User("张三", 18, new Date()));
users.add(new User("李四", 20, new Date()));
String json = JSON.toJSONString(users);
System.out.println(json);
List<User> us = JSON.parseObject(json, new TypeReference<List<User>>(){});
System.out.println(us);
}
@Test
public void testBeanToJSON() {
User user = new User();
user.setName("张三");
user.setAge(18);
user.setBirth(new Date());
String json = JSON.toJSONString(user);
System.out.println(json);
User u = JSON.parseObject(json, User.class);
System.out.println(u);
}
}
jackson
package com.jock168.test;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.type.CollectionType;
import com.fasterxml.jackson.databind.type.MapType;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import com.jock168.entity.User;
import org.junit.Test;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class JacksonTest {
@Test
public void testMapToJSON() throws Exception {
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JavaTimeModule());
Map<Integer, User> users = new HashMap<>();
User user = new User();
user.setName("张三");
user.setAge(20);
user.setBirth(LocalDate.now());
users.put(1, user);
user = new User();
user.setName("李四");
user.setAge(21);
user.setBirth(LocalDate.now());
users.put(2, user);
String json = mapper.writeValueAsString(users);
System.out.println(json);
MapType mapType = mapper.getTypeFactory().constructMapType(Map.class, Integer.class, User.class);
Map<Integer, User> userMap = mapper.readValue(json, mapType);
System.out.println(userMap);
}
@Test
public void testListToJSON() throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JavaTimeModule());
List<User> users = new ArrayList<>();
User user = new User();
user.setName("张三");
user.setAge(20);
user.setBirth(LocalDate.now());
users.add(user);
user = new User();
user.setName("李四");
user.setAge(21);
user.setBirth(LocalDate.now());
users.add(user);
String json = mapper.writeValueAsString(users);
System.out.println(json);
CollectionType javaType = mapper.getTypeFactory().constructCollectionType(List.class, User.class);
List<User> us = mapper.readValue(json, javaType);
for (int i = 0; i < us.size(); i++) {
System.out.println(us.get(i));
}
}
@Test
public void testBeanToJSON() throws JsonProcessingException {
User user = new User();
user.setName("张三");
user.setAge(20);
user.setBirth(LocalDate.now());
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JavaTimeModule());
String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(user);
System.out.println(json);
User u = mapper.readValue(json, User.class);
System.out.println(u);
}
}