【问题标题】:JSON.parse not working for valid json [duplicate]JSON.parse 不适用于有效的 json [重复]
【发布时间】:2014-03-29 07:34:00
【问题描述】:

我在 Javascript 中使用以下行来解析 json 字符串。

var obj = JSON.parse('{"respDataMap":{"userMessages":{"lbSearchHint":"Enteravalueandpress\"Enter\"orclickon\"Search\"#"}},"respErrorCode":"","respErrorMessage":""}');

字符串中转义的双引号字符导致 json 解析失败。 但是,在线 JSON 验证器中粘贴的相同字符串被证明是有效的。 我该如何解决这个问题?

【问题讨论】:

  • 在问这个问题时,我认为双反斜杠也不起作用。 (这是因为我试图用 Java 中的双斜杠替换单斜杠。不幸的是,我的 Java replaceAll 用法错误,导致我认为双反斜杠在 JS 中不起作用)

标签: javascript json parsing


【解决方案1】:

使用双斜杠,例如转义字符

var obj = JSON.parse('{"respDataMap":{"userMessages":{"lbSearchHint":"Enteravalueandpress\\"Enter\\"orclickon\\"Search\\"#"}},"respErrorCode":"","respErrorMessage":""}');

【讨论】:

  • 谢谢。三反斜杠也可以工作..为什么会这样?
  • Javascript 解释器会将三个解释为双 '\\' 和单 '\' 的组合,后者被解释为一个 '\'。 '\\\' == '\\'+'\' == '\\' == '\'@Teddy 双斜杠也解释为单斜杠'\\' == '\'
猜你喜欢
  • 2020-02-04
  • 2021-09-14
  • 2013-02-28
  • 2015-12-14
  • 2011-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-21
相关资源
最近更新 更多