如何将JavaScript对象转换为字符串?
例子:
var o = {a:1, b:2}
console.log(o)
console.log('Item: ' + o)
输出:
对象{a=1, b=2} //非常好的可读输出:) Item: [object object] //不知道里面有什么:(
如何将JavaScript对象转换为字符串?
例子:
var o = {a:1, b:2}
console.log(o)
console.log('Item: ' + o)
输出:
对象{a=1, b=2} //非常好的可读输出:) Item: [object object] //不知道里面有什么:(
当前回答
我建议使用JSON。stringify,它将对象中的变量集转换为JSON字符串。
var obj = {
name: 'myObj'
};
JSON.stringify(obj);
大多数现代浏览器都支持这种方法,但对于那些不支持的浏览器,您可以包含一个JS版本。
其他回答
JSON似乎接受了第二个参数,可以帮助函数- replace,这以最优雅的方式解决了转换问题:
JSON.stringify(object, (key, val) => {
if (typeof val === 'function') {
return String(val);
}
return val;
});
请不要使用此答案,因为它只在某些版本的Firefox中有效。没有其他浏览器支持它。使用加里钱伯斯解决方案。
toSource()是您正在寻找的函数,它将以JSON的形式写入。
var object = {};
object.first = "test";
object.second = "test2";
alert(object.toSource());
我建议使用JSON。stringify,它将对象中的变量集转换为JSON字符串。
var obj = {
name: 'myObj'
};
JSON.stringify(obj);
大多数现代浏览器都支持这种方法,但对于那些不支持的浏览器,您可以包含一个JS版本。
如果你想在内联表达式类型的情况下用最简单的方法将变量转换为字符串,“+variablename是我打过的最好的球。
如果'variablename'是一个对象,你使用空字符串连接操作,它将给出烦人的[object object],在这种情况下,你可能想要Gary C。JSON获得了极大的好评。stringify问题的答案,你可以在Mozilla的开发者网络的答案在顶部的链接中阅读。
Stringify-object是yeoman团队制作的一个很好的NPM库:https://www.npmjs.com/package/stringify-object
npm install stringify-object
然后:
const stringifyObject = require('stringify-object');
stringifyObject(myCircularObject);
显然,只有当循环对象使用JSON.stringify()会失败时,它才有趣;