gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:01:55 27 4
gpt4 key购买 nike

尝试使用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

我在转换后得到的提示对象为 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<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)

关于java - Json字符串解析为具有多个对象的java对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5656123/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com