2010-03-11 39 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