题 将JS对象转换为JSON字符串


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

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

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

'{"name":"binchen"}'

1002
2017-11-12 08:20


起源


JSON.stringify() 是你正在寻找的方法。 - Gowtham Gopalakrishnan
805人不知道这一点 - micapam
总有第一次你需要学习它。 - Egan Wolf


答案:


所有当前的浏览器都内置了本机JSON支持。因此,只要您不处理像IE6 / 7这样的史前浏览器,您就可以轻松地执行此操作:

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

1607
2017-11-12 08:31



下载 这个脚本 为了 JSON.stringify(j); 上班 - abi1964
也在nodejs上工作! - Frederic Yesid Peña Sánchez
在nodejs上工作,因为节点使用相同的引擎 - georgelviv
这个答案是在IE9发布前一年发布的,因此在编写IE8时确实是一个现代浏览器,或者至少它是最新的IE浏览器。 - Andris
JSON.stringify不会转换嵌套对象。任何解决方案.. ?? - Ritesh


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.

92
2017-11-12 08:22



为了更清晰一点: replacer  是 可选,所以如果你还想使用 space 你放了 null 对于 replacer。如果您有兴趣使用此功能进行漂亮的打印,我发现这个答案也很有用: stackoverflow.com/a/7220510/857209 - Glenn Lawrence


查看更新/更好的方式:

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

JSON概念之父Douglas Crockford编写了JavaScript的第一个字符串之一。后来,Trim Path的Steve Yen编写了一个很好的改进版本,我已经使用了一段时间。这是我对Steve的版本的更改,我想与您分享。基本上他们源于我希望制作弦乐器:

• handle and restore cyclical references  
• include the JavaScript code for functions/methods (as an option)  
• exclude object members from Object.prototype if needed.

24
2017-11-12 08:26





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

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

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


14
2017-11-20 10:05



感谢您添加相反的流程。 - David Lavieri


JSON 字符串化 可以将您的js对象转换为json

 var x = {"name" : "name1"};
 JSON.stringify(x);

13
2017-11-03 11:44





JSON.stringify({"key":"value"});

9
2018-06-25 13:25



它的工作谢谢你 - javad bat


如果你正在使用AngularJS,'json'过滤器应该这样做:

<span>{{someObject | json}}</span>

7
2017-09-11 05:38





在angularJS

angular.toJson(obj, pretty);

OBJ: 输入要序列化为JSON。

漂亮(可选):
如果设置为true,则JSON输出将包含换行符和空格。如果设置为整数,则JSON输出将包含每个缩进的许多空格。

(默认:2)


7
2018-05-08 08:13



它也适用于角度2吗? - javad bat