无钥匙
问题描述:
我们希望在Java中无钥匙
{
[
{
"key": "ABC001",
"value": true
},
{
"key": "ABD12",
"value": false
},
{
"key": "ABC002",
"value": true
},
]
}
下面创建一个JSON结构,要实现这一点,我们创建了一个类,并有其内部列表私有财产创建一个JSON。 但是,正在为这个关键values
class Response{
private List<Property> values;
// setter getter for this private property
}
输出是
{
values : [
{
"key": "ABC001",
"value": true
},
......
]
是否有我们创建一个没有钥匙,里面的{ }
阵列的方法吗?
答
不幸的是,你试图构建的不是一个有效的json。 你可以尝试验证它here。
例如,使用这个“json”,读取数组将不可能,因为它没有密钥。
{
"foo_key" : "bar",
[
{
"key": "ABC001",
"value": true
},
{
"key": "ABD12",
"value": false
},
{
"key": "ABC002",
"value": true
},
]
}
解析JSON像这样的,你可以得到“酒吧”,因为它有一个键(“foo_key”),但你怎么能得到阵列?
您使用的代码对于有效的json已经是正确的。
答
所以,出于某种原因,你想要一个无效的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...
你正在创建一个类'响应'而不是'List'的json。你可以添加你用来制作json的代码,以便我们纠正它吗? –
nonzaprej
@nonzaprej我尝试从列表本身创建json,然后它不在{}内部,它以[{Key,value},{Key,vaue}]形式出现。我们希望它在{[{},{}]} –
Suraj
这看起来不像是List - > Array的工作,尝试使用Map - > Object代替 –