Json字符串解析为具有多个对象的java对象

尝试使用gson将以下json字符串解析为java对象

{ "entry": "132456", "product": { "item": "123456", "prompts": [ { "promptId": "1", "promptNumber": "109", "promptType": 4, "promptTypeDesc": "desc1", "validations": [ { "minLen": 10, "maxLen": 10, "required": true } ] }, { "promptId": "2", "promptNumber": "110", "promptType": 4, "promptTypeDesc": "desc2", "validations": [ { "minLen": 12, "maxLen": 12, "required": true } ] }, { "promptId": "3", "promptNumber": "72", "promptType": 5, "promptTypeDesc": "desc4", "validations": [ { "required": true } ] } ] } } 

我有我的java类

  public class Info{ private String entry; private Product product; // added setters and getters /* Product is inner class*/ public static Product { private String item; private List prompts; // added getters and setters /*Prompt inner class*/ public static Prompt{ private String promptId; private String promptNumber; private List validations; // getters and setters /*Validation inner class*/ public static Validation{ private int maxLen; private int minLen; private boolean required; // added getters and setters } // end of Validation class } // end of Prompt class } // end of Product } // End of Info 

转换后,我将Prompt对象视为null。

  item = gson.fromJson(response, Info.class); 

有人可以纠正我

试试这个JSON:

 { "entry": "132456", "product": { "item": "123456", "prompts": [ { "promptId": "1", "promptNumber": "109", "promptType": 4, "promptTypeDesc": "desc1", "validations": [ { "minLen": 10, "maxLen": 10, "required": true } ] } ] } } 

使用此Java类:

 import java.util.List; public class Info { private String entry; private Product product; public class Product { private String item; private List prompts; public class Prompt { private String promptId; private String promptNumber; private int promptType; private String promptTypeDes; private List validations; public class Validation { private int maxLen; private int minLen; private boolean required; } } } } 

奇迹般有效

 public static void main(String args[]){ String input = "{" + "\"entry\": \"132456\"," + "\"product\": {\"item\": \"123456\"," + "\"prompts\":[{\"promptId\": \"1\"," + "\"promptNumber\": \"109\"," + "\"promptType\": 4," + "\"promptTypeDesc\": \"desc1\"," + "\"validations\":[{\"minLen\": 10," + "\"maxLen\": 10" + ",\"required\": true}]}]}}"; Gson gson = new GsonBuilder().setPrettyPrinting().create(); Info item = gson.fromJson(input, Info.class); String jsonOutput = gson.toJson(item); System.out.println(jsonOutput); } 

输出:

 run: { "entry": "132456", "product": { "item": "123456", "prompts": [ { "promptId": "1", "promptNumber": "109", "promptType": 4, "validations": [ { "maxLen": 10, "minLen": 10, "required": true } ] } ] } } BUILD SUCCESSFUL (total time: 0 seconds)