将 JS 对象转换为 JSON 字符串

IT技术 javascript json string object
2021-01-11 07:56:16

如果我在 JS 中定义了一个对象:

var j={"name":"binchen"};

如何将对象转换为 JSON?输出字符串应该是:

'{"name":"binchen"}'
6个回答

当前所有浏览器都内置了原生 JSON 支持。因此,只要您不处理像 IE6/7 这样的史前浏览器,您就可以轻松地做到这一点:

var j = {
  "name": "binchen"
};
console.log(JSON.stringify(j));

如果您需要更多可读的 json 字符串,您可以使用空格参数,例如 var formattedJSON = JSON.stringify(j, null, 2);
2021-03-12 07:56:16
JSON.stringify 不会转换嵌套对象。任何解决方案..??
2021-03-13 07:56:16
下载此脚本JSON.stringify(j);使其工作
2021-03-18 07:56:16
这个答案是在 IE9 发布前一年发布的,所以在撰写本文时 IE8 确实是一个现代浏览器,或者至少它是可用的最新 IE。
2021-03-18 07:56:16
在 nodejs 上工作,因为 node 使用相同的引擎
2021-03-29 07:56:16

随着JSON.stringify()中发现的json2.js或大部分现代浏览器本地。

   JSON.stringify(value, replacer, space)
        value       any JavaScript value, usually an object or array.

       replacer    an optional parameter that determines how object
                    values are stringified for objects. It can be a
                    function or an array of strings.

       space       an optional parameter that specifies the indentation
                    of nested structures. If it is omitted, the text will
                    be packed without extra whitespace. If it is a number,
                    it will specify the number of spaces to indent at each
                    level. If it is a string (such as '\t' or ' '),
                    it contains the characters used to indent at each level.

       This method produces a JSON text from a JavaScript value.
什么是替代品?
2021-03-24 07:56:16
更清楚一点:replacer 可选的,所以如果你想仍然使用spacenullreplacer. 如果您有兴趣使用此功能进行漂亮的打印,我发现此答案也很有用:stackoverflow.com/a/7220510/857209
2021-04-06 07:56:16

查看 Thomas Frank 更新/更好的方式:

2008 年 5 月 17 日更新:向 toObject 方法添加了小型消毒剂。现在 toObject() 如果在字符串中发现任何恶意代码,则不会 eval() 字符串。为了更加安全:不要将 includeFunctions 标志设置为 true。

道格拉斯·克罗克福德 (Douglas Crockford) 是 JSON 概念之父,他为 JavaScript 编写了最早的字符串化符之一。后来,Trim Path 的 Steve Yen 写了一个很好的改进版本,我已经使用了一段时间。我想与您分享的是我对 Steve 版本的更改。基本上,它们源于我制作字符串化器的愿望:

  • 处理和恢复循环引用
  • 包括函数/方法的 JavaScript 代码(作为选项)
  • 如果需要,从 Object.prototype 中排除对象成员。

您可以使用JSON.stringify()方法将 JSON 对象转换为 String。

var j={"name":"binchen"};
JSON.stringify(j)

对于反向过程,您可以使用JSON.parse()方法将 JSON 字符串转换为 JSON 对象。

感谢您添加反向过程。
2021-04-08 07:56:16

JSON.stringify(j, null, 4) 会给你美化的 JSON,以防你也需要美化

第二个参数是replacer。它可以用作过滤器,您可以在字符串化时过滤掉某些键值。如果设置为 null 它将返回所有键值对