如何在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)); 

希望对你有帮助..