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<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

转换后,我得到的提示对象为空。

       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<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;

}

}

}

}

奇迹般有效

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)

以上是 JSON字符串解析为具有多个对象的Java对象 的全部内容, 来源链接: utcz.com/qa/421788.html

回到顶部