簡體   English   中英

JSON GSON.fromJson Java Objects

[英]JSON GSON.fromJson Java Objects

我想把我的Json加載到我的班級

public User() {
    this.fbId = 0;
    this.email = "";
    this.name = "";
    this.thumb = "";
    this.gender = "";
    this.location = "";
    this.relationship = null;
    this.friends = new ArrayList();
}
{
    users:{
        user:{
            name:'the name',
            email:'some@email.com',
            friends:{
                user:{
                    name:'another name',
                    email:'this@email.com',
                    friends:{
                        user:{
                            name:'yet another name',
                            email:'another@email.com'
                        }
                    }
                }
            }
        }
    }
}

我正在努力讓GSON使用以下代碼將用戶詳細信息加載到上面的Java對象中

User user = gson.fromJson(this.json, User.class);

JSON無效。 集合不由{}表示。 它代表一個對象 集合/數組由[]和逗號分隔對象表示。

以下是JSON的外觀:

{
    users:[{
        name: "name1",
        email: "email1",
        friends:[{
            name: "name2",
            email: "email2",
            friends:[{
                name: "name3",
                email: "email3"
            },
            {
                name: "name4",
                email: "email4"
            }]
        }]
    }]
}

(請注意,我向最深的嵌套朋友添加了一位朋友,以便您了解如何在集合中指定多個對象)

鑒於此JSON,您的包裝類應如下所示:

public class Data {
    private List<User> users;
    // +getters/setters
}

public class User {
    private String name;
    private String email;
    private List<User> friends;
    // +getters/setters
}

然后轉換它,使用

Data data = gson.fromJson(this.json, Data.class);

並獲得用戶,使用

List<User> users = data.getUsers();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM