【问题标题】:JavaScript DEEP stringifyJavaScript DEEP 字符串化
【发布时间】:2014-02-13 15:10:51
【问题描述】:

“刺痛”复杂的 JSON 对象时,我无法获得正确的结果。 例如:

{
  "a": "a",
  "b": [
    [
      {
        "c": "c",
        "d": "d",
        "e": "e"
      },
      {
        "c": "c",
        "d": "d",
        "e": "e"
      },
      {
        "c": "c",
        "d": "d",
        "e": "e"
      }
    ],
    [{
        "c": "c",
        "d": "d",
        "e": "e"
      }],
    [
      {
        "c": "c",
        "d": "d",
        "e": "e"
      },
      {
        "c": "c",
        "d": "d",
        "e": "e"
      }
    ]
  ],
  "f": [
    {
      "g": "g",
      "h": "h"
    },
    {
      "g": "g",
      "h": "h"
    },
    {"g": "g"}
  ]
}

在上面的示例中,a 甚至 f 字符串化很好,但我正在“丢失”b 值的内容(字符串化为空数组),从我读到的内容来看,如果还有更多在 JSON 的深处,需要进行深度字符串化,但我似乎无法以正确的方式查看b 键的内容。

有人知道怎么做吗?

附言节点甚至可以有 3 层或更多层,而不仅仅是一层或两层。

谢谢

更新:我发现了问题,我正在使用 $.tmpl 并且出于某种原因,在某些情况下,我得到的是关联数组而不是对象数组(我知道在JS,但这就是我得到的,大小为 0 的数组,其中包含键值对,不是对象)在第二级的“b”值中。 Stringify 正在做我期望它现在做的事情。谢谢

【问题讨论】:

  • 我不知道你在哪里读到的。 JSON.stringify 应该处理所有级别。你能展示你得到了什么并指出你失去了什么吗?
  • 本次赋值前a、c、d、e、g、h的值是多少?
  • 对我来说很好:jsfiddle.net/barmar/kEf82/3

标签: javascript jquery json stringify


【解决方案1】:

请参阅:Why doesn't JSON.stringify display object properties that are functions? 答案中有一个图表,显示了哪些值是允许的。 “未定义”不是其中之一。正如那里的 cmets 所述,使用 stringify 时将省略 undefined 值。

【讨论】:

  • 谢谢,你让我再次检查代码和结果,我发现了问题(在更新中写到),现在我只需要找出它发生的原因。 10x
猜你喜欢
  • 2013-04-06
  • 2016-04-21
  • 2013-08-25
  • 1970-01-01
  • 2018-09-29
  • 1970-01-01
  • 2015-07-06
  • 1970-01-01
  • 2010-09-11
相关资源
最近更新 更多