我有一个json数组,我将它放在地图中。地图是省略一个大括号
for(int i = 0; i < jsonarr.length(); i++){
try {
JSONObject jsonobj = jsonarr.getJSONObject(i);
Iterator<Object> keysItr = jsonobj.keys();
while(keysItr.hasNext()) {
Object key = keysItr.next();
Object value = jsonobj.get((String) key);
map.put((String) key, value);
}
System.out.println(map);
但是,当我显示地图,它给了我一个字符串,其中有一个大括号丢失。
输出
{
subtype=text,
maxlength=22,
values=[
{
"label":"Time",
"value":"two",
"selected":true
},{
"label":"Milk",
"value":"hot"
},{
"label":"sky",
"value":"blue"
}
],
(HERE)
name=text-1496816623336,
description=sa,
className=form-control,
label=Text Field,
type=text,
required=true
}
我用杰克逊和GSON还,但在这种情况下,他们甚至没有把整个JSON到map.It可能是一个愚蠢的问题,但感谢。
编辑:
这里是JSON用于创建Map
[
{
"type":"select",
"label":"Select",
"className":"form-control",
"name":"select-1496823185891",
"values":[
{
"label":"Option 1",
"value":"option-1",
"selected":true
},{
"label":"Option 2",
"value":"option-2"
},{
"label":"Option 3",
"value":"option-3"
}
]
},{
"type":"text",
"label":"Text Field",
"className":"form-control",
"name":"text-1496823186970",
"subtype":"text"
}
]
在一个普通的java.util.HashMap中调用'toString()'不会*打印有效的JSON。您需要通过使用您使用的任何JSON库将它正确地呈现为JSON,而不是通过简单地在地图上调用'toString()'。 – Jesper
你可以发布用于填充地图的JSON吗?他们会匹配,而不是语法,但内容。 PS:在字符串中添加一些换行符会给你一个更好的格式视图,没有什么是错误的 – AxelH
@Jesper我已经使用杰克逊,但它给了我一半不完整的json。其实我想通过这张地图弹性索引。 –