【问题标题】:Conversion of string to JSON object in JavaScript with eval() [duplicate]使用 eval() 在 JavaScript 中将字符串转换为 JSON 对象 [重复]
【发布时间】:2015-09-04 20:50:24
【问题描述】:

我正在将以下 JSON 变量转换为字符串。返回 JSON 时,我收到了一个错误(在 ReactJS 中,虽然它不应该很重要)。

var questionGlobal = {
  "questionCons": [{
    "string": "In",
    "alignment": 2
  }, {
    "string": "New York State",
    "alignment": 1
  }, {
    "string": "the",
    "alignment": -1
  }, {
    "string": "shortest",
    "alignment": -1
  }, {
    "string": "period",
    "alignment": 0
  }, {
    "string": "of",
    "alignment": 2
  }, {
    "string": "daylight",
    "alignment": 0
  }, {
    "string": "occurs",
    "alignment": 2
  }, {
    "string": "during",
    "alignment": 1
  }, {
    "string": "which",
    "alignment": 0
  }, {
    "string": "month",
    "alignment": 0
  }],
  "options": [{
    "string": "January",
    "alignment": 1
  }, {
    "string": "December",
    "alignment": 2
  }, {
    "string": "June",
    "alignment": 1
  }, {
    "string": "July",
    "alignment": 1
  }]
};

命令如下:

window.console.log( eval(JSON.stringify(questionGlobal)));

我在控制台中得到的输出是:

Uncaught SyntaxError: Unexpected token

知道我在哪里做错了吗?

【问题讨论】:

  • JSON 本身不一定是有效的 JS。

标签: javascript json reactjs


【解决方案1】:

你可以使用JSON.parse

console.log(JSON.parse(JSON.stringify(questionGlobal)));

使用eval() 时,需要传递有效的JS 语句。您实际上可以在没有eval 的情况下编写并且不会出现任何错误。

JSFiddle Demo

【讨论】:

    猜你喜欢
    • 2017-05-05
    • 2020-11-15
    • 1970-01-01
    • 1970-01-01
    • 2021-01-16
    • 2012-07-05
    • 2016-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多