2014-02-17 25 views
4

我有一個JSON如下:替換 「[用[和]」 用] JSON

[{"type":"Point","coordinates":"[-77.03,38.90]"},"properties":{"city":3,"url":"xyz.com"}] 

我想與[]"]

+4

這是一個愚蠢的想法。你應該做的是**解碼**數組,然後轉換**變量類型**(如果將字符串轉換爲數組等,它將刪除引號),然後**將它重新編碼爲JSON再次。 –

+1

你的意思是你想把'coordinates'的值變成一個真實的數組,而不是一個字符串? –

+0

忘記我的最後一條評論。你從哪裏得到這個JSON?一份文件? ajax呼叫? – ojovirtual

回答

3

試試這個

$yourJson = [{"type":"Point","coordinates":"[-77.03,38.90]"},"properties":{"city":3,"url":"xyz.com"}]; 
$jsonString=preg_replace('/"([^"]+)"\s*:\s*/', '$1:', $yourJson); 
    $stringReplace=str_replace('"[', '[', $jsonString); 
    $stringReplace=str_replace(']"', ']', $stringReplace); 
    echo $stringReplace; 
+0

是的,正在工作......謝謝。 –

0

從註釋更換"[看來你是把額外報價在更換試試這個

json = json.replace("\"[","["); 
0

您可以使用following regex

str.replace(/"(\[[^"\]]*\])"/, "$1"); 

其中str是輸入字符串。這將匹配"[後跟一串不是"]的字符串,然後是]",並將兩個"放在極限。在你的情況下,它會將"[-77.03,38.90]"轉換爲[-77.03,38.90]

除此之外,編碼問題中返回字符串的人應該立即被觸發

+0

其給出了這種錯誤:期望的一個:?,?=,?!,^,*,+,?,{,{,,(,[,。, ,$,|,)在第1行,第3列(第3字節)之後( –

+0

你正在使用哪個javascript運行時? – CAFxX