【问题标题】:Building JSON-Object with inner array in Javascript在 Javascript 中使用内部数组构建 JSON-Object
【发布时间】:2016-04-19 23:34:57
【问题描述】:

我需要这个字符串:

{"name":"ne","type":"Choice","id":"ne","width":150,"items":[{"id":"test1","value ":"test1","title":"test1"},{"id":"test3","value":"test3","title":"test3"},{"id":"test2", "value":"test2","title":"test2"}]}

我有以下几点:

JSON.stringify(itemList) 给了我这个:

[{"id":"test1","value":"test1","title":"test1"},{"id":"test3","value":"test3","title" :"test3"},{"id":"test2","value":"test2","title":"test2"}]

我试过这个:

JSON.stringify({
      name: loadName(),
      type: "Choice",
      id: complexTableId,
      width: loadWidth(),
      items: JSON.stringify(itemList)
})

但我明白了:

{"name":"ne","type":"Choice","id":"ne","width":"150","items":"[{\"id\":\ "test1\",\"value\":\"test1\",\"title\":\"test1\"},{\"id\":\"test3\",\"value\":\ "test3\",\"title\":\"test3\"},{\"id\":\"test2\",\"value\":\"test2\",\"title\":\ "test2\"}]"}

有谁知道我的错误在哪里?

`

【问题讨论】:

    标签: javascript json


    【解决方案1】:
    JSON.stringify({
                        name: loadName(),
                        type: "Choice",
                        id: complexTableId,
                        width: loadWidth(),
                        items: itemList
                    });
    

    【讨论】:

      【解决方案2】:

      您在itemList 上呼叫JSON.stringify 两次。这将导致您的字符串化对象再次被字符串化。

      请注意下面双字符串化示例中的两个反斜杠 + 双引号 (\"):

      // single stringify
      > JSON.stringify({ test: "Hello World" });
      < "{"test":"Hello World"}"
      
      // double stringify
      > JSON.stringify({ test: JSON.stringify("Hello World") });
      < "{"test":"\"Hello World\""}"
      

      如果你想正确地对一个对象进行字符串化,那么只对整个对象使用一次JSON.stringify

      JSON.stringify({
          name: loadName(),
          type: "Choice",
          id: complexTableId,
          width: loadWidth(),
          items: itemList // don't include "JSON.stringify" here
      });
      

      【讨论】:

        【解决方案3】:

        在对所有内容进行字符串化之前,无需在您的项目上调用JSON.stringify,试试这个:

        JSON.stringify({
            name: loadName(),
            type: "Choice",
            id: complexTableId,
            width: loadWidth(),
            items: itemList
        })
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-01-19
          • 2021-10-10
          • 1970-01-01
          • 2021-09-26
          相关资源
          最近更新 更多