Java中关于JSON的基本使用
Java中可以操作json的类库jar有很多,网上一找一大片,每种封装的jar包有自己的方法,需要查阅资料使用,但无非就是json转对象,对象转json这些
Java中常见的json类jar包:Gson,Jackson,fastjson
转json:map使用 { } 包围,数组和list使用 [ ] 包围
package demo_json;
import com.google.gson.Gson;
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class TestJson {
@Test
public void testWriteJson(){
// 实例化Person对象,将Person对象转换为Json串
Dog dog = new Dog("大力");
Person person = new Person("liv",10,dog);
// 将person对象转换成一个字符串 Gson,Jackson,fastjson
Gson gson = new Gson();
String jsonStr = gson.toJson(person);//{"name":"liv","age":10,"dog":{"name":"大力"}}
System.out.println(jsonStr);
}
@Test
public void testReadJson(){
// 假设jsonStr为json串
String jsonStr = "{\"name\":\"liv\",\"age\":10,\"dog\":{\"name\":\"大力\"}}";
// 反序列化Json串为Person
Gson gson = new Gson();
Person person = gson.fromJson(jsonStr, Person.class);
// 获取Person对象的属性值
System.out.println(person.getName());
System.out.println(person.getAge());
System.out.println(person.getDog().getName());
}
@Test
public void testMap(){
Map data = new HashMap();
data.put("1","ada");
data.put("2","dad");
Gson gson = new Gson();
String jsonMap = gson.toJson(data);{"1":"ada","2":"dad"}
System.out.println(jsonMap);
String mapString = "{\"1\":\"ada\",\"2\":\"dad\"}";
Map map = gson.fromJson(mapString, Map.class);//{1=ada, 2=dad}
System.out.println(map);
}
@Test
public void testList(){
// List 与数组转成json效果一样
List data = new ArrayList<String>();
data.add("1");
data.add("2");
data.add("3");
Gson gson = new Gson();
String json = gson.toJson(data);//["1","2","3"]
System.out.println(json);
String[] listString = {"1","2","3"};
String json1 = gson.toJson(listString);//["1","2","3"]
System.out.println(json1);
//对象使用{}包围, list和数组使用[]包围
Person person = new Person("张三",10,new Dog("大黄"));
List<Person> persons = new ArrayList<>();
persons.add(person);
String json2 = gson.toJson(persons);//[{"name":"张三","age":10,"dog":{"name":"大黄"}}]
System.out.println(json2);
}
}
package demo_json;
public class Dog {
private String name;
public Dog() {
}
public Dog(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package demo_json;
public class Person {
private String name;
private int age;
private Dog dog;
public Person(String name, int age, Dog dog) {
this.name = name;
this.age = age;
this.dog = dog;
}
public Person(){
}
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 Dog getDog() {
return dog;
}
public void setDog(Dog dog) {
this.dog = dog;
}
}