gson快捷方便的解析Java对象数组

字符串数组

比如字符串数组:

["Android","Java","PHP"]

测试代码:

Gson gson = new Gson();
String jsonArray = "[\"Android\",\"Java\",\"PHP\"]";
String[] strings = gson.fromJson(jsonArray, String[].class);

这里可以看到简单的字符串类型解析非常方便

对象数组

实体类:Car

public class Car implements Serializable {
    public String brand;
    public int    doors;

    public Car() {
    }

    public Car(String brand, int doors) {
        this.brand = brand;
        this.doors = doors;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public int getDoors() {
        return doors;
    }

    public void setDoors(int doors) {
        this.doors = doors;
    }

    @Override
    public String toString() {
        return "Car{" +
                "brand='" + brand + '\'' +
                ", doors=" + doors +
                '}';
    }
}

数组转json

List<Car> list = new ArrayList<Car>();
list.add(new Car("Jeep", 3));
list.add(new Car("Porsche", 2));
System.out.println( gson.toJson(list) );

可以得到json字符串:

[{"brand":"Jeep","doors":3},{"brand":"Porsche","doors":2}]

json数组转Java数组

String jsonString = "[{\"brand\":\"Jeep\",\"doors\":3},{\"brand\":\"Porsche\",\"doors\":2}]";
Type listType = new TypeToken<List<Car>>(){}.getType();
Gson gson = new Gson();
List<Car> carList = gson.fromJson(jsonString, listType);
System.out.println( carList );

打印结果为:

[Car{brand='Jeep', doors=3}, Car{brand='Porsche', doors=2}]

是不是也是非常简单而强大


参考:



blog comments powered by Disqus

Published

04 April 2018

Tags