Gson使用
public class Test {
public static void main(String[] args) {
// json数组字符串 转json数组
String jsonStr = "[{\"a\":\"1\",\"b\":10}, {a:\"11\",\"b\":110}]";
JsonArray asJsonArray = JsonParser.parseString(jsonStr).getAsJsonArray();
for (JsonElement jsonElement : asJsonArray) {
System.out.println("--------");
System.out.println(jsonElement);
System.out.println(jsonElement.getAsJsonObject().get("a"));
System.out.println(jsonElement.getAsJsonObject().get("a").getAsString());
// 直接使用toString,字符串的时候会有双引号;getAsString会去掉对应双引号
System.out.println(jsonElement.getAsJsonObject().get("b"));
System.out.println(jsonElement.getAsJsonObject().get("b").getAsString());
}
System.out.println("----------------");
// json字符串 转json对象
String jsonStr2 = "{\"c\":\"12\",\"d\":120}";
JsonObject asJsonObject = JsonParser.parseString(jsonStr2).getAsJsonObject();
System.out.println(asJsonObject.get("c"));
System.out.println(asJsonObject.get("c").getAsInt());
System.out.println("----------------");
// json字符串 转bean对象
String jsonStr3 = "{\"name\":\"12\",\"age\":120}";
Person person = new Gson().fromJson(jsonStr3, Person.class);
System.out.println(person);
System.out.println("----------------");
// bean对象 转json字符串
Person person1 = new Person();
person1.setAge(20);
person1.setName("zhangsan");
String s = new Gson().toJson(person1);
System.out.println(person1);
System.out.println(s);
}
}
输出
--------
{"a":"1","b":10}
"1"
1
10
10
--------
{"a":"11","b":110}
"11"
11
110
110
----------------
"12"
12
----------------
Person(name=12, age=120)
----------------
Person(name=zhangsan, age=20)
{"name":"zhangsan","age":20}