如果我使用以下JS代码定义一个对象:
var j={"name":"binchen"};
我该如何将对象转换为JSON格式?输出的字符串应为:
'{"name":"binchen"}'
如果我使用以下JS代码定义一个对象:
var j={"name":"binchen"};
我该如何将对象转换为JSON格式?输出的字符串应为:
'{"name":"binchen"}'
工作中...易于使用
$("form").submit(function(evt){
evt.preventDefault();
var formData = $("form").serializeArray(); // Create array of object
var jsonConvert = JSON.stringify(formData); // Convert to json
});
谢谢
const j={ "name": "binchen" }
/** convert json to string */
const jsonString = JSON.stringify(j)
console.log(jsonString) // {"name":"binchen"}
在Node JS中进行调试时,您可以使用util.inspect()。它可以更好地处理循环引用。
var util = require('util');
var j = {name: "binchen"};
console.log(util.inspect(j));
使用原生函数 JSON.stringify()
let userJson = {
name : 'Richard'
}
let userJsonString = JSON.stringify(userJson)
如果您想以字符串格式获取JSON属性值,请使用以下方法
var i = {"x":1}
var j = JSON.stringify(i.x);
var k = JSON.stringify(i);
console.log(j);
"1"
console.log(k);
'{"x":1}'
JSON.stringify
进行此转换 - 但请记住,具有 undefined
值的字段将不包括在 json 中。
var j={"name":"binchen", "remember":undefined, "age": null };
var s=JSON.stringify(j);
console.log(s);
字段remember
在输出的JSON中“消失”了。
现有的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;
}
So in order to convert a js object to JSON String:
JSON.stringify(value)
完整的语法如下: JSON.stringify(value[, replacer[, space]])
让我们看一些简单的例子。请注意,如果需要,整个字符串都会获得双引号,并且字符串中的所有数据都会被转义。
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(param1, param2, param3);
参数说明: -
param1 --> 要转换为 JSON 的值
param2 --> 用自己的方式进行字符串化的函数。或者,它可以作为白名单,指定哪些对象需要包含在最终的 JSON 中。
param3 --> 表示要添加的空格数的数字数据类型。最大允许为10。
JSON.stringify()
是你要找的方法。 - Gowtham