将单引号转换为双引号

时间:2017-01-27 09:23:06

标签: javascript node.js object

我有以下对象:

{
  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并不好,因为它添加了"{"

有人知道如何实现上述目标?

2 个答案:

答案 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}}

不添加任何额外的括号......