json_encode添加不需要的斜杠

时间:2010-03-11 14:10:43

标签: javascript json

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

我在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值周围也有额外的斜杠和引号。 请帮帮我。

谢谢。

1 个答案:

答案 0 :(得分:19)

您正在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"}}
相关问题