jav*_*999 1 java parsing json gson
我有以下Java对象:
public class PersonDetails {
private Person person;
private List<Relative> relatives;
public PersonDetails() {};
//getters and setters
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试为此创建Stub JSON,以便我可以使用它将其解析为Java对象GSON.
当我尝试使用下面的JSON时,我收到错误:
JSON only allows one top level value
Run Code Online (Sandbox Code Playgroud)
我怎样才能改变JSON它以使其有效?
我当前的JSON:
{
"Person": {
"id": "123",
"name: "stubName"
},
[
"Relative": {
"name": "relative1",
"relation: "mother"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我认为您的JSON结构不正确,GSON期待如下:
{
"person": {
// Person object
},
"relatives": [ // Mind the plural!
{
//Relative object
},
{
//another Relative object
}
]
}
Run Code Online (Sandbox Code Playgroud)
基本原理:通常,任何JSON库都会检查您的bean是否正在寻找公共setter.如果你有一个类似的setter setPerson(Person p),那么它将删除"set"前缀,然后将切换下一个字母的情况("P"变为"p"),因此它将尝试创建一个Person对象,然后将其插入person属性.
但是我再次认为还有其他错误:该错误抱怨你有一个JSON字符串,如:"{....},{....}"所以你有2个或更多顶级(又名根)对象,这在JSON标准表示法中是不允许的.