关于javascript:将JS对象转换为JSON字符串

Convert JS object to JSON string

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

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

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

1
'{"name":"binchen"}'


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

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


使用json2.js中的JSON.stringify()或大多数现代浏览器中的本地版本。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
   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.


查看更新/更好的方法:

  • 重新访问JSON字符串

Update May 17, 2008: Small sanitizer
added to the toObject-method. Now
toObject() will not eval() the string
if it finds any malicious code in
it.For even more security: Don't set
the includeFunctions flag to true.

Douglas Crockford, father of the JSON concept, wrote one of the first stringifiers for JavaScript. Later Steve Yen at Trim Path wrote a nice improved version which I have used for some time. It's my changes to Steve's version that I'd like to share with you. Basically they stemmed from my wish to make the stringifier:

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

可以使用json.stringify()方法将json对象转换为字符串。

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

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


JSON字符串化可以将JS对象转换为JSON

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

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


如果您使用的是AngularJS,那么"json"过滤器应该这样做:

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

盎格鲁人

1
angular.toJson(obj, pretty);

对象:要序列化为JSON的输入。

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

(默认值:2)


如果你也需要美化的话,JSON.stringify(j,null,4)会给你美化的JSON。


JSON.stringify将一个javascript对象转换成JSON文本,并将该JSON文本存储在一个字符串中。

转换是一个对象到字符串

JSON.parse将一个JSON文本字符串转换成一个javascript对象。

转换是一个字符串到对象

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

为了使其成为JSON字符串,可以使用以下内容。

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

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

有关更多信息,请参阅下面的链接。

https://developer.mozilla.org/en/docs/web/javascript/reference/global_objects/json/stringify


为此定义了一个自定义,直到我们对stringify方法执行奇怪的操作为止。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var j={"name":"binchen","class":"awesome"};
var dq='"';
var json="{";
var last=Object.keys(j).length;
var count=0;
for(x in j)
{
json += dq+x+dq+":"+dq+j[x]+dq;
count++;
if(count<last)
   json +=",";
}
json+="}";
document.write(json);

产量

1
{"name":"binchen","class":"awesome"}

现场http://jsfiddle.net/mailmerohit5/y78zum6v/


1
2
3
var someObj = {"name" :"some name" };
var someObjStr = JSON.stringify(someObj);
console.log( someObjStr  );

我有一个问题,就是Stringify内存不足,其他解决方案似乎不起作用(至少我不能让它们起作用),这时我偶然发现了这条线索。多亏了Rohit Kumar,我只需遍历我非常大的JSON对象,以防止它崩溃。

1
2
3
4
5
6
7
8
9
10
11
var j = MyObject;
var myObjectStringify ="{"MyObject":[";
var last = j.length
var count = 0;
for (x in j) {
    MyObjectStringify += JSON.stringify(j[x]);
    count++;
    if (count < last)
        MyObjectStringify +=",";
}
MyObjectStringify +="]}";

MyObjectStringify将为您提供字符串表示(就像在这个线程中提到的其他时间一样),除非您有一个大对象,这也应该有效-只要确保您构建它以满足您的需要-我需要它有一个名称而不是数组


1
2
3
const obj = {"name":"xxx","city":"York"};
const myJSON = JSON.stringify(obj);
  console.log(myJSON);


复制并粘贴

1
2
3
4
5
$("form").submit(function(evt){
  evt.preventDefault();
  var formData = $("form").serializeArray(); // Create array of object
  var jsonConvertedData = JSON.stringify(formData);  // Convert to json
});

Woking…易于使用

1
2
3
4
5
$("form").submit(function(evt){
  evt.preventDefault();
  var formData = $("form").serializeArray(); // Create array of object
  var jsonConvert = JSON.stringify(formData);  // Convert to json
});

谢谢


如果要获取字符串格式的JSON属性值,请使用以下方法

1
2
3
4
5
6
7
8
9
10
11
12
13
var i = {"x":1}

var j = JSON.stringify(i.x);

var k = JSON.stringify(i);

console.log(j);

"1"

console.log(k);

'{"x":1}'

您可以像这样使用本机stringify函数

1
2
3
4
5
6
const j={"name":"binchen" }

/** convert json to string */
const jsonString = JSON.stringify(j)

console.log(jsonString) // {"name":"binchen"}


定义对象

1
2
3
4
5
let obj = {
"firstname" :"Hello",
"lastname" :"javascript"

};

然后使用此代码将其转换为字符串

1
strObj= JSON.stringify(obj);

以确保控制台的结果

1
console.log(strObj);


现有的JSON替换的地方对我来说太多了,所以我编写了自己的函数。这似乎可行,但我可能错过了几个边缘案例(这在我的项目中没有发生)。并且可能不适用于任何预先存在的对象,只适用于自制数据。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
function simpleJSONstringify(obj) {
    var prop, str, val,
        isArray = obj instanceof Array;

    if (typeof obj !=="object") return false;

    str = isArray ?"[" :"{";

    function quote(str) {
        if (typeof str !=="string") str = str.toString();
        return str.match(/^".*"$/) ? str : '"' + str.replace(/"/g, '\"') + '"'
    }

    for (prop in obj) {
        if (!isArray) {
            // quote property
            str += quote(prop) +":";
        }

        // quote value
        val = obj[prop];
        str += typeof val ==="object" ? simpleJSONstringify(val) : quote(val);
        str +=",";
    }

    // Remove last colon, close bracket
    str = str.substr(0, str.length - 2)  + ( isArray ?"]" :"}" );

    return str;
}

1
So in order to convert a js object to JSON String:

将对象转换为字符串的简单语法是

1
JSON.stringify(value)

完整的语法是:json.stringify(value[,replacer[,space]])

让我们看一些简单的例子。注意,整个字符串双引号和字符串中的所有数据在需要。

1
2
3
4
5
6
7
8
9
10
11
12
JSON.stringify("foo bar"); //""foo bar""
JSON.stringify(["foo","bar"]); //"["foo","bar"]"
JSON.stringify({}); // '{}'
JSON.stringify({'foo':true, 'baz':false}); /*"
{"foo":true,"baz":false}" */




const obj = {"property1":"value1","property2":"value2"};
const JSON_response = JSON.stringify(obj);
console.log(JSON_response);/*"{"property1":"value1",
"property2":"value2"}"*/


可以使用json.stringify(j)将json文件转换为字符串。


您只需在下面添加此代码var j={"name":"binchen"};
JSON.stringify(j); // '{"name":"binchen"}'


对于在节点js中进行调试,可以使用util.inspect()。它在循环引用中工作得更好。

1
2
3
var util = require('util');
var j = {name:"binchen"};
console.log(util.inspect(j));


您可以使用json.stringify()函数来实现这一点。


JSON.strigify()是实现这一点的最佳实践。

1
2
3
4
5
6
var x = {
   "name" :"name1",
   "age"    : 20
};
var json = JSON.stringify(x);
console.log(json);

1
2
var j={"name":"binchen"};
var x= json.stirngify(j);

这将把JSON对象转换为托管对象

对于单向绑定,可以在HTML中执行此操作

{{j|json}}


你想要的是:

1
2
var yourObject = {a :"string", b : 2 };
Json.Stringify(yourObject);

无论哪种方式,如果您想要一个漂亮的打印,您应该检查:我如何使用javascript漂亮地打印JSON?

有关JSON字符串化/解析的更多信息,请检查此项。


如果您正在寻找语法突出显示的JS到JSON在线转换工具。

Javascript to JSON tool


如果您有一个JSON字符串,但它没有用[]包装,那么首先将其包装起来。

[cc lang="javascript"]var str = '{"city":"Tampa","state":"Florida