我怎么能把一个string内的双引号在PHP的ajax JSON响应?

我在服务器的Ajax请求中收到一个JSON响应。 这样它的工作原理:

{“a”:“1”,“b”:“hello'kitty'”}

但是我没有成功地在小猫身上加双引号。

当我在Ajax响应中将其转换为\ x22时,它仍被解释为“通过JavaScript,我无法parsingJSON。

我是否也可以在以后逃脱(和可能)?

这个怎么做?

编辑:我不知道,如果我expression得很好:我想这个string里面的“B”parsing后:

凯蒂猫”

如果有必要,我也可以在parsing后添加一个额外的步骤来转换“b”,但我想这是没有必要的,有一个更优雅的方式,所以这种情况自动发生?

Edit2: ajax页面是由php生成的。 我现在尝试了几件事情来创buildb的值,所有的结果在页面上的JSONparsing错误:

$b = 'hello "kitty"'; // no 1: //$b = str_replace('"',"\x22",$b); // or no 2: // $b = addslashes($b); // or no 3: $b = str_replace('"','\"',$b); echo '{ "a" : "1", "b" : "' . $b . '"}'; 

编辑3:这个解决scheme终于奏效:

 $b = 'hello "kitty"'; $b = str_replace('"','\\"',$b); echo '{ "a" : "1", "b" : "' . $b . '"}'; 

只要用一个反斜杠逃脱它:

 > JSON.stringify({"a": 5, "b": 'a "kitty" mighty odd'}) {"a":5,"b":"a \"kitty\" mighty odd"} > JSON.parse('{"a":5,"b":"a \\"kitty\\" mighty odd"}') Object a: 5 b: a "kitty" mighty odd __proto__: Object 

JSONparsing器将双引号内的string识别为双引号。注意,在第二个示例中,由于存在Javascriptparsing器传递,所以需要双反斜杠,然后是另一个JSONparsing器传递。

只使用json_encode(任何PHP元素),它会自动parsing。

有点偏离主题,你可以在你的服务器上使用JavaScript / NodeJS,并使用ES6模板文字(在“基督徒”周围使用反引号),但7年后,你可能已经使用NodeJS 🙂

 var myJSON = { "name": { "first": `"Christian"`, "last": "Broberg" }, "age": 49, "skills": [ "JavaScript", "React", "NodeJS" ], "married": false, "superpowers": null }