如果我在JS中定义了一个对象:
var j={"name":"binchen"};
如何将对象转换为JSON?输出字符串应该是:
'{"name":"binchen"}'
如果我在JS中定义了一个对象:
var j={"name":"binchen"};
如何将对象转换为JSON?输出字符串应该是:
'{"name":"binchen"}'
当前回答
使用JSON。stringify(param1, param2, param3);
什么是:-
param1——>值转换为JSON
Param2—>函数以自己的方式进行字符串化。或者,它可以作为一个白列表,其中的对象需要包含在最终的JSON中。
param3——>数字数据类型,表示要添加的空白空间的数量。最多允许添加10个空白空间。
其他回答
使用JSON。stringify(param1, param2, param3);
什么是:-
param1——>值转换为JSON
Param2—>函数以自己的方式进行字符串化。或者,它可以作为一个白列表,其中的对象需要包含在最终的JSON中。
param3——>数字数据类型,表示要添加的空白空间的数量。最多允许添加10个空白空间。
您可以使用JSON.stringify()来做到这一点
使用本机函数JSON.stringify()
let userJson = {
name : 'Richard'
}
let userJsonString = JSON.stringify(userJson)
要在Node JS中进行调试,可以使用util.inspect()。使用循环引用效果更好。
var util = require('util');
var j = {name: "binchen"};
console.log(util.inspect(j));
现有的JSON替换对我来说太多了,所以我写了自己的函数。这似乎是可行的,但我可能错过了一些边缘情况(在我的项目中不会出现)。并且可能不适用于任何已存在的对象,只适用于自制数据。
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 ();
// When the actual variable was a number, it was returning a number between quotation marks
// return str.match(/^\".*\"$/) ? str : '"' + str.replace(/"/g, '\\"') + '"';
// Now, we are verifing if is a number and, if it is, we remove the quotation marks
str = str.match (/^\".*\"$/) ? str : '"' + str.replace (/"/g, '\\"') + '"';
if (isNaN (str.replace (/^["]/, '').replace (/["]$/, '')))
return str;
else
return str.replace (/^["]/, '').replace (/["]$/, '');
}
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;
}