json用双引号解析错误

json用双引号解析错误

本文介绍了json用双引号解析错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

A double quote even if escaped is throwing parse error.
look at the code below

//parse the json in javascript
var testJson = '{"result": ["lunch", ""Show""] }';
var tags = JSON.parse(testJson);
alert (tags.result[1]);

This is throwing parse error because of the double quotes (which are already escaped).
Even eval() won't work here.
But if i escape it with double slashes like this:

var result = '{"result": ["lunch", "\"Show\""] }';
var tags = JSON.parse(result);
alert (tags.result[1]);

then it works fine.
Why do we need to use double slash here in javascript?The problem is that PHP json_encode() function escapes a double quote with a single slash (like this: "show") which JSON.parse won't be able to parse. How do i handle this situation?

解决方案

Well, finally, JSON's parse uses the same eval, so there's no difference when you give them smth. with incorrect syntax. In this case you have to escape correctly your quotes in php, and then escape them and their escaping slashes with json_encode

<?php
    $json = '{"result": ["lunch", ""Show""] }';
    echo json_encode($json);
?>

OUTPUT: "{"result": ["lunch", "\"Show\""] }"

This should work on client-side JS (if I've made no typos).

这篇关于json用双引号解析错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-26 06:51