如何在Array google-gson中反序列化Array
我有这样的JSON:
{ "Answers": [ [ {"Locale":"Ru","Name":"Name1"}, {"Locale":"En","Name":"Name2"} ], [ {"Locale":"Ru","Name":"Name3"}, {"Locale":"En","Name":"Name4"} ] ] }
如您所见,我在数组中有数组。 如何使用Android上的google-gson库将此类JSON结构反序列化为对象( https://code.google.com/p/google-gson/ )?
在Json格式之后我们得到了这样的东西:
为MyObject
public class MyObject { public List> Answers; public List> getAnswers() { return Answers; } }
部分
public class Part { private String Locale; private String Name; public String getLocale() { return Locale; } public String getName() { return Name; } }
主要
public static void main(String[] args) { String str = " {" + " \"Answers\": [[{" + " \"Locale\": \"Ru\"," + " \"Name\": \"Name1\"" + " }," + " {" + " \"Locale\": \"En\"," + " \"Name\": \"Name2\"" + " }]," + " [{" + " \"Locale\": \"Ru\"," + " \"Name\": \"Name3\"" + " }," + " {" + " \"Locale\": \"En\"," + " \"Name\": \"Name4\"" + " }]]" + " }"; Gson gson = new Gson(); MyObject obj = gson.fromJson(str, MyObject.class); List> answers = obj.getAnswers(); for(List parts : answers){ for(Part part : parts){ System.out.println("locale: " + part.getLocale() + "; name: " + part.getName()); } } }
输出:
locale: Ru; name: Name1 locale: En; name: Name2 locale: Ru; name: Name3 locale: En; name: Name4
用这个
public class MyObject extends ArrayList> { public List Answers }
也可以使用给定的代码对此进行反序列化
List Answers = Arrays.asList(gson.fromJson(json, MyObject.class));
希望对你有帮助..