gpt4 book ai didi

java - JSON 只允许一个顶级值?

转载 作者:行者123 更新时间:2023-11-29 10:09:54 26 4
gpt4 key购买 nike

我有以下 Java 对象:

public class PersonDetails {
private Person person;
private List<Relative> relatives;

public PersonDetails() {};

//getters and setters

}

我正在尝试为此创建 Stub JSON,以便我可以使用 GSON 将其解析为 Java 对象。

当我尝试使用以下 JSON 时,出现错误:

JSON only allows one top level value

如何更改我的 JSON 以使其有效?

我当前的 JSON:

{
"Person": {

"id": "123",
"name: "stubName"
},
[
"Relative": {

"name": "relative1",
"relation: "mother"

}

]
}

最佳答案

我认为您的 JSON 结构不正确,GSON 期望的是:

{
"person": {
// Person object
},
"relatives": [ // Mind the plural!
{
//Relative object
},
{
//another Relative object
}
]
}

基本原理:一般来说,任何 JSON 库都会检查您的 bean 以寻找公共(public) setter。如果你有像 setPerson(Person p) 这样的 setter,那么它会删除“set”前缀,然后切换下一个字母的大小写(“P”变成“p”),所以它将尝试创建一个 Person 对象,然后将其插入到 person 属性中。

但话又说回来,我认为还有其他问题:该错误提示你有一个 JSON 字符串,如:"{....},{....}",所以你有 2 个或更多顶级(又名根)对象,这在 JSON 标准表示法中是不允许的。

关于java - JSON 只允许一个顶级值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44366773/

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