我在PHP中创建一个JSON对象:
echo json_encode(array("results" => array(array("user" => $member['user']),array("company" => $member['company']))));
在JavaScript中,我得到了类似的内容:
"{"results":[{"user":"David"},{"company":"something"}]}"
然后我尝试验证这个JSON并且它无效,但是当我在开头和结尾删除双引号时,它就是验证JSON。
我做错了什么? 这应该是这样的:
{"results":[{"user":"David"},{"company":"something"}]}
编辑:
我的AJAX调用的一部分:
success: function(response)
{
for(var i=0;i<response.results.length;i++)
{
sessionStorage.setItem('user',response.results[i].user);
sessionStorage.setItem('company',response.results[i].company);
}
}
答案 0 :(得分:6)
您似乎对其进行了双重编码。要么是这样,要么就是对它进行编码然后将其转储到引号内。
要说清楚,你应该有这样的东西:
var myJSobject = <?php echo json_encode(...); ?>;
然后去,没有别的需要。
答案 1 :(得分:0)
echo json_encode(
array(
"results" =>
array(
array("user" => $member['user'], "company" => $member['company'] ),
array("user" => $member['user2'], "company" => $member['company2'] )
)
)
);
答案 2 :(得分:0)
似乎你是从某个地方(从日志或其他东西?)复制带有引号的字符串,并尝试在其他地方验证。 echo json_encode(..)
应该给你正确的Json字符串!