javascript - 用于具有对象值的属性的 JSON.stringify 过滤器不起作用

标签 javascript json

有人可以澄清一下过滤规则吗?

属性 z 未正确字符串化,请参阅最后一行。

MDN 表示“如果是数组,则指定最终字符串中的对象中包含的属性集。”

var obj = {x:1,y:'str',z:{a:1,b:2}};
var s = JSON.stringify(obj)
"{"x":1,"y":"str","z":{"a":1,"b":2}}"
var s = JSON.stringify(obj,["x","y","z"]);
"{"x":1,"y":"str","z":{}}"   //z empty object why?

最佳答案

来自MDN ,如果 replacer(JSON.stringify 的第二个参数)是一个数组,则它指定最终字符串中的对象中包含的属性集。

您将其设置为 ["x","y","z"] 在这种情况下,您生成的字符串具有这三个属性,您可能错过的是它适用于所有属性不仅仅是顶层的属性,因此由于您没有在数组中指定 "a""b" 它们不包含在最终字符串中。

尝试 JSON.stringify(obj,["x","y","z", "a", "b"]); http://jsfiddle.net/mowglisanu/rhCTY/

关于javascript - 用于具有对象值的属性的 JSON.stringify 过滤器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13428247/

相关文章:

javascript - 垂直拉伸(stretch)背景图像而不是按比例拉伸(stretch),而不仅仅是覆盖 - 这可以实现吗?

javascript - 如何仅使用 CSS3 将动态创建的元素平滑地添加到 DOM 中?

javascript - JSON 对象多重过滤器

json - 如何在代码中定义包含定义的Json Schema

javascript - javascript中NaN的保留关键字是什么?

使用 autobahnjs 时,javascript 错误不会显示在控制台中

ruby-on-rails - 大型 JSON 负载 Rails、Heroku、Unicorn 上的机架超时

jquery - 我如何访问这些属性?

JAVA Jackson 解析包含列表/数组的 JSON 响应

javascript - 栏固定在顶部,但前提是滚动试图隐藏它