json值内的单引号

eze*_*ero 12 javascript formatting json

Javascript无法读取此json字符串,因为它包含单引号字符,它将其视为字符串的结尾.

如何逃避单引号,以便它不被视为字符串的结尾?

var json = '{"1440167924916":{"id":1440167924916,"type":"text","content":"It's a test!"}}';

var parsed = JSON.parse(json);
Run Code Online (Sandbox Code Playgroud)

Cod*_*gue 13

使用反斜杠来转义字符:

var json = '{"1440167924916":{"id":1440167924916,"type":"text","content":"It\'s a test!"}}';
var parsed = JSON.parse(json);
Run Code Online (Sandbox Code Playgroud)

  • 这回答了我发布的问题.但是,我使用的解决方案是直接从json创建一个对象文字,而不是先通过简单地删除外部单引号将其转换为字符串.感谢Quentin指出这一点. (2认同)
  • 他正在提供样本数据。他实际上并没有写出值文字。他可能想要一些本质上更全局的东西,而不是他必须通过显式的 escapeThisApostrope(...) 函数运行每个字符串值的地方,这将是非常低效和愚蠢的。 (2认同)

Nob*_*tak 5

只需使用反斜杠来逃避单引号,例如\':

var json = '{"1440167924916":{"id":1440167924916,"type":"text","content":"It\'s a test!"}}';

var parsed = JSON.parse(json);

//Output parsed to the document using JSON.stringify so it's human-readable and not just "[object Object]":
document.write(JSON.stringify(parsed));
Run Code Online (Sandbox Code Playgroud)

  • 这对于他的样本数据来说非常有用;这不是现实世界的修复。 (2认同)