将字符串转换为json对象javascript

时间:2016-03-29 09:36:36

标签: javascript json stringify

我知道json.stringify()函数将json对象转换为json字符串。

json.stringify({x:9})

这将返回字符串"{"x" : 9}"

但有没有办法将简单的字符串转换为json格式? 例如,我想要这个

var str = '{x: 9}'
json.stringify(str)  //"{"x" : 9}"

3 个答案:

答案 0 :(得分:3)

使用proper format字符串,您可以使用JSON.parse

var str = '{"x" : 9}',
    obj = JSON.parse(str);

document.write('<pre>' + JSON.stringify(obj, 0, 4) + '</pre>');            

答案 1 :(得分:0)

如果您使用的是jQuery,那么您可以使用$ .parseJSON查看http://api.jquery.com/jquery.parsejson/

还可以访问Parse JSON in JavaScript?

答案 2 :(得分:0)

使用 eval 的第一个解决方案:

const parseRelaxedJSON = (str) => eval('(_ => (' + str + '))()')
JSON.stringify(parseRelaxedJSON('{x: 5}'))

(_ => (' + str + '))()是一个自动执行的匿名函数。 eval必须评估类似于{x: 5}的字符串。这种方式eval将评估表达式函数(_ => ({x: 5}))(),如果您不熟悉ES6语法,则相当于:

(function() {
  return {x: 5}
})()

第二个解决方案:使用适当的“放松”JSON解析器,例如 JSON5

JSON.stringify(JSON5.parse('{x: 2}'))

JSBin