【问题标题】:SyntaxError: JSON.parse: expected ',' or '}' after property value in objectSyntaxError: JSON.parse: 对象中的属性值后预期为“,”或“}”
【发布时间】:2013-09-04 14:04:10
【问题描述】:

将 json 字符串转换为 javascript 对象时出现此错误。 json 字符串包含双引号,例如 {"Name":"Dem"o"} 解析 json 字符串时有什么合适的方法来处理双引号?

【问题讨论】:

  • 只需使用 `\` 转义引号。

标签: asp.net-mvc json


【解决方案1】:

json 字符串包含双引号,例如 {"Name":"Dem"o"}

这是无效的 JSON。你无法解析它。如果您希望能够使用 JSON 解析器解析字符串,则首先需要具有有效的 JSON。因此,请确保您拥有有效的 JSON:

{"Name":"Dem\"o"}

为确保您永远不会遇到此类损坏的字符串,切勿手动构建它们 - 始终在创建 JSON 字符串时使用 JSON 序列化程序。这将正确处理和转义所有值。

【讨论】:

  • 你在完成照片的时候打败了我 :) +1
  • @DarinDimitrov,因为最初的回答是:“这是无效的 JSON。你无法解析它。” 一点帮助都没有。
  • @gdoron,没有 OP 询问如何解析这个 JSON 字符串,我的回答是他无法解析它,因为他没有 JSON 字符串。他有一些任意的字符串。然后我解释了一个有效的 JSON 字符串的外观以及生成它的正确方法 -> 使用 JSON 序列化程序。如果您认为这不能回答问题,请随意投反对票并自己发布真实答案。
  • 达林 感谢您的回复。我知道这是无效的 json。我正在尝试在 MVC 中将 Model 转换为 ViewModel 并使用敲除映射 viewModel = ko.mapping.fromJSON(jsonstring, viewModelMapping) 所以我的 jsonstring 值来自 server 。我可以在哪里用“替换”?服务器端或客户端
  • 我回答的重点是你不应该替换客户端上的任何东西。您应该首先在服务器上创建有效的 JSON。您能否显示您手动创建此字符串的代码,以便我们可以在服务器上修复它?这就是你的问题所在。
【解决方案2】:

最好在下面使用:-

addslashes($your_variable);

对于您的情况:-

addslashes('{"Name":"Dem"o"}');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-11
    • 1970-01-01
    • 2021-12-10
    相关资源
    最近更新 更多