Json字符串解析为具有多个对象的java对象
尝试使用gson将以下json字符串解析为java对象Json字符串解析为具有多个对象的java对象,java,json,gson,Java,Json,Gson,尝试使用gson将以下json字符串解析为java对象 { "entry": "132456", "product": { "item": "123456", "prompts": [ { "promptId": "1", "promptNumber": "109", "promptType": 4,
{
"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<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
有人能纠正我吗试试这个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<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;
}
}
}
}
输出:
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)
很高兴听到这个消息。如果这个答案解决了你的问题,请接受或投票。把内部类的定义放入外部类来解决这个问题?
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)