【问题标题】:JSON syntax error - JSON.parseJSON 语法错误 - JSON.parse
【发布时间】:2018-08-22 06:46:34
【问题描述】:

我在尝试解析此代码时遇到错误(如果格式不正确,请道歉 - 我是新手):

 {
     "message": "Please press 1 or 2 to choose the item from your order",
     "totalPrice":  ${order_res.total_price}, //num
     "OrderNum": ${order_res.order_number}, //num
     "orderID": ${order_res.order_id}, //num
     "customerName": ${order_res.customer_name}, //string
     "itemId": [${id}],
     "itemName": [${items}],
     "itemPrice": [${price}]                      
 }

错误消息:未捕获的 SyntaxError:JSON 中第 272 位的意外标记 d

我正在发送这个 JSON 作为响应,现在这个响应在我添加最后三个项目之前在我的后端收到时正在解析,但由于它们的格式相同,我不确定为什么它错了,有人可以帮忙请用他们更有经验的眼睛请教一下?

谢谢!

【问题讨论】:

  • JSON 中不允许评论。此外,所有键都必须是字符串,并且允许的值只有StringNumberBoolean,可以采用ObjectArray 的形式。
  • 你的 json 是否包含循环依赖?如果不是,请提供错误信息
  • @connexo 是的,我将它们放入 stackoverflow 查看器的上下文中,但我应该指定 :) 并感谢您提供额外的信息

标签: javascript json


【解决方案1】:

修正这一行:

"customerName": "${order_res.customer_name}", //string

在您的代码中,如果order_res.customer_name 等于“konichiwa”,那么您会得到:

"customerName": konichiwa

但你需要:

"customerName": "konichiwa"

另外,如果你有这样的数组:

"itemName": [${['hello', 'world']}]

你得到:

"itemName": [hello, world]

代替:

"itemName": ["hello", "world"]

【讨论】:

  • 我之前更改了它,但出现了另一个错误,但是您已经打开了下一个错误,在 itemName 中它是一个数组,其中包含应该是字符串但格式为 [sparlarva sparlarva, sparlarva sparlarva] 什么时候应该是 ['sparlarva sparlarva', 'sparlarva sparlarva'] 对吧?
  • @Sparlarva 是 es6 模板字符串吗?
  • customerName 不是数组,直到我在其中添加括号。它目前是 - “你好,世界”,所以我在它周围添加了括号,所以基本上它目前是 [“你好,世界”] - 所以它实际上不是正确的格式,因为我基本上是从另一个 json 响应中获取数据和将数据连接到其中,但尚未将它们变成单独的字符串
猜你喜欢
  • 1970-01-01
  • 2021-05-09
  • 2013-06-02
  • 2015-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-26
  • 2020-04-13
相关资源
最近更新 更多