[英]Json string parsing to java object with multiple objects
Trying to parse the following json string to java object using gson 尝试使用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
}
]
}
]
}
}
I have my java classes as 我有我的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<Prompt> prompts;
// added getters and setters
/*Prompt inner class*/
public static Prompt{
private String promptId;
private String promptNumber;
private List<Validation> 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
I am getting Prompt object as null after converting. 转换后,我将Prompt对象视为null。
item = gson.fromJson(response, Info.class);
Can someone please correct me 有人可以纠正我
Try this JSON: 试试这个JSON:
{
"entry": "132456",
"product":
{
"item": "123456",
"prompts":
[
{
"promptId": "1",
"promptNumber": "109",
"promptType": 4,
"promptTypeDesc": "desc1",
"validations":
[
{
"minLen": 10,
"maxLen": 10,
"required": true
}
]
}
]
}
}
With this Java Class: 使用此Java类:
import java.util.List;
public class Info {
private String entry;
private Product product;
public class Product {
private String item;
private List<Prompt> prompts;
public class Prompt {
private String promptId;
private String promptNumber;
private int promptType;
private String promptTypeDes;
private List<Validation> validations;
public class Validation {
private int maxLen;
private int minLen;
private boolean required;
}
}
}
}
Works like a charm 奇迹般有效
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);
}
Output: 输出:
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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.