2017-04-11 96 views
0

我们有以下的JSON字符串:转换一个JSON字符串为对象的ArrayList与GSON

jsonUserDataRecs=[{"G_ID1":1,"G_ID2":2,"G_ID3":3,"NAME":"g1"},{"G_ID1":4,"G_ID2":5,"G_ID3":5,"NAME":"g2"}] 

想将其转换成以下数据类型:

ArrayList<USER_DATA_REC> userDataRecs; 

我们尝试了以下,但没有得到任何结果:

userDataRecs = gson.fromJson(jsonUserDataRecs, new TypeToken<ArrayList<USER_DATA_REC>>() {}.getType()); 

当我们运行:userDataRecs.get(0).getNAME(),我们没有得到任何结果。

任何帮助将不胜感激。

谢谢。

+0

[Google Gson - 反序列表对象可能重复? (泛型)](http://stackoverflow.com/questions/5554217/google-gson-deserialize-listclass-object-generic-type) –

+0

你会得到什么错误?并请分享您的USER_DATA_REC课程 – mismanc

回答

0

首先做一个POJO类:

public class UserDataRecord { 
    public int G_ID1; 
    public int G_ID2; 
    public int G_ID3; 
    public String NAME; 
    public String getNAME() { 
     return NAME; 
    } 
} 

下一页使用GSON到反序列化JSON字符串,像这样:

UserDataRecord[] userDataRecords = gson.fromJson(jsonUserDataRecs, UserDataRecord[].class); 

现在你有一个反序列化的用户数据记录的数组。如果需要,您可以手动将其转换为列表,或者使用正常的for循环迭代它。