Gson在不知道對象結構的情況下遍歷各個字段

    public static void main(String[] args) {
        Person p1 = new Person("zhang",20);
        Person p2 = new Person("wang",25);

        List<Person> persons = new ArrayList<Person>();
        persons.add(p1);
        persons.add(p2);

        String str = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create().toJson(persons);
        System.out.println(str);
        JsonElement jsonElement = new JsonParser().parse(str);
        JsonArray ja = new JsonParser().parse(str).getAsJsonArray();
        for(int i=0;i<ja.size();i++){
            JsonObject jb = ja.get(i).getAsJsonObject();
            for( Map.Entry<String,JsonElement>  entry:jb.entrySet()){
                System.out.print(entry.getKey()+"->"+entry.getValue().getAsString()+" ");
            }
            System.out.println();
        }
    }

// 前提是由List序列化的字符串

class Person{
    String name;
    @Expose
    int age;

    public Person(){}

    public Person(String name,int age){
        this.name = name;
        this.age = age;
    }


    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}




發佈了27 篇原創文章 · 獲贊 2 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章