我在数据库中保存了一个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值周围也有多余的斜杠和引号。
请帮我。

谢谢你。

最佳答案

您正在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"}}

关于javascript - json_encode添加不需要的斜杠,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2425538/

10-10 02:15