我有以下对象:
{
name: "TJ",
age: 14,
skills: {
ruby: 14,
html: 50
}
}
基本上我想把它转换成这样的东西:
{
"name": "TJ",
"age": 14,
"skills": {
"ruby": 14,
"html": 50
}
}
所以,一切都应该有双引号。
我试着这样做:
for ( let i in person ) {
if ( typeof person[i] !== 'object' ) payload[`"${i}"`] = person[i]
// if object then map inside and to the same
}
但它失败了,因为输出是这样的:
{
'"name"': '"TJ"',
...
}
此外,JSON.stringify并不好,因为它添加了"{"
。
有人知道如何实现上述目标?
答案 0 :(得分:5)
你可以直接使用JSON.stringify()吗?
如果
var a = {
name: "TJ",
age: 14,
skills: {
ruby: 14,
html: 50
}
}
var b = JSON.stringify(a);
您在共享的链接中看到的内容(http://jsbin.com/vogivanohe/edit?js,console): " {\"布尔\":真,\" INT \":1}"
就是控制台如何表示数据。实际对象仍然如您所愿。
检查以下链接: http://codepen.io/pankaj805/pen/xgXoyQ
检查浏览器控制台。
答案 1 :(得分:0)
尝试运行代码:
var person={
name: "TJ",
age: 14,
skills: {
ruby: 14,
html: 50
}
};
console.log(JSON.stringify(person));
O / P:
{"name":"TJ","age":14,"skills":{"ruby":14,"html":50}}
不添加任何额外的括号......