我们想在Java中创建一个JSON结构,如下所示
{
[
{
"key": "ABC001",
"value": true
},
{
"key": "ABD12",
"value": false
},
{
"key": "ABC002",
"value": true
},
]
}
为了实现这一点,我们创建了一个类,并在其中包含一个列表私有属性。
但那就是创建一个键values
class Response{
private List<Property> values;
// setter getter for this private property
}
此输出为
{
values : [
{
"key": "ABC001",
"value": true
},
......
]
我们是否有办法在没有密钥且在{ }
?
答案 0 :(得分:2)
不幸的是,你正在尝试构建的不是一个有效的json。 您可以尝试验证它here。
例如,使用这个“json”,就不可能读取数组,因为它没有键。
{
"foo_key" : "bar",
[
{
"key": "ABC001",
"value": true
},
{
"key": "ABD12",
"value": false
},
{
"key": "ABC002",
"value": true
},
]
}
解析像这样的json,你可以得到“bar”,因为它有一个键(“foo_key”),但你怎么能得到数组呢?
您正在使用的代码对于有效的json已经是正确的。
答案 1 :(得分:2)
因此,出于某种原因,您需要一个无效的json,这是一个包含在{}
之间的数组。这是你如何做到的(我假设你使用google-gson来制作和解析jsons,因为你没有包含你的代码):
// example of the creation of the list
List<Property> values = new ArrayList<>();
values.add(new Property("ABC001", true));
values.add(new Property("ABD12", false));
values.add(new Property("ABC002", true));
//
Gson gson = new Gson();
String json = gson.toJson(values, new TypeToken<List<Property>>() {}.getType());
json = "{" + json + "}";// gotta do what you gotta do...