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}