java - map 省略了一个大括号

标签 java json

我有一个 json 数组,我将其放入 map 中。

  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);

但是当我显示 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
}

我也使用过 jackson 和 gson,但在这种情况下,他们甚至没有将整个 json 放入 map 中。这可能是一个愚蠢的问题,但谢谢。

编辑:

这是用于创建 map 的 JSON

[
  {
    "type":"select",
    "label":"Select",
    "className":"form-control‌​",
    "name":"select-149‌​6823185891",
    "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"
  }
]

最佳答案

嘿,不,没有缺少大括号,....格式化输出,您将看到:

{
    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
}

编辑(回答您的评论): 这是一个有效的 Json 字符串:

[{"type":"select","label":"select","className":"form-control‌​","name":"select-149‌​6823185891","values":[{"label":"选项 1","value":"option-1","selected":true},{"label":"选项 2","value":"option-2"}, {"label":"Option 3","value":"option-3"}]},{"type":"text","label":"文本字段","className":"form-control","name":"text-1496823186970‌​","subtype":"text"}]

格式化:

[
    {
        "type": "select",
        "label": "select",
        "className": "form-control‌​",
        "name": "select-149‌​6823185891",
        "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"
    }
]

在您的代码中,“values”: 之间存在一些隐藏字符。

关于java - map 省略了一个大括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44405543/

相关文章:

java - Ubuntu 15.04 构建Android 5.0 错误: You are attempting to build with the incorrect version of java. 为什么?

java - onComplete() 在成功下载 pdf (Rxjava) 后永远不会被调用,但在使用 AsyncTask 时可以工作

java - 如何消除E Zygote?

java - Apache Shiro 是否支持 bCrypt?

jquery json 路径

python - 如何根据其他实体的数据通过tastypie选择在django中创建或不创建实体?

java - Spring Boot,GraphQL性能泄漏

json - 如何为全局范围自定义 Struts Json 插件日期格式

json - Grails 3如何将json View 呈现到文件输出而不是http响应流?

java - Apache Camel XmlJsonDataFormat XML 到 JSON