2010-03-11 106 views
9

我有一个json字符串保存在我的数据库。当我从数据库检索它传递给javascript函数(ajax调用),以及该行的id,我json_encoding两个(查询结果数组)并将它传递给js。但json_encode向我已有的json字符串中添加了不需要的斜杠。如何逃避它。记得我必须通过id也作为数组中的第二个元素。json_encode添加不需要的斜杠

在DB我的JSON字符串是这样的:

{"field":"City","term":"Hawaiian Gardens, CA"} 

而id是说5

所以在PHP中的查询结果数组是:

$savedVal['id'] = 5 
$savedVal['object_str'] = {"field":"City","term":"Hawaiian Gardens, CA"} 

json_encode经过这么( $ savedVal)理想情况下它应该是:

{"id":"5","object_str":{"field":"City","term":"Hawaiian Gardens, CA"}} 

但json_encoding数组给我:

{"id":"5","object_str":"{\"field\":\"City\",\"term\":\"Hawaiian Gardens, CA\"}} 

多余的斜线和报价太各地object_str值。 请帮帮我。

谢谢。

回答

18

您正在JSON上运行JSON_encode--这就是发生双重转义的原因。试试这个:

$savedVal['id'] = 5 ; 
$savedVal['object_str'] = json_decode('{"field":"City","term":"Hawaiian Gardens, CA"}'); 

echo json_encode($savedVal); 

输出

{"id":5,"object_str":{"field":"City","term":"Hawaiian Gardens, CA"}} 
+0

感谢。有用!!!! – Prashant 2010-03-11 15:10:14