2012-01-12 146 views
4

我有一個json_encoded數組,這很好。從鍵上的json_encoded字符串中刪除雙引號

我需要從json字符串的所有鍵上去掉雙引號,並從函數調用中返回。

我該如何去做,併成功返回它?

謝謝!

我道歉,這裏是JSON代碼片段:

{"start_date":"2011-01-01 09:00","end_date":"2011-01-01 10:00","text":"test"} 

我想補充一點的詳細信息:

我會通過Ajax請求被檢索的JSON,所以如果會更容易,我打開如何在JavaScript方面做到這一點的想法。

+2

你能展示json代碼的例子嗎? – Ignas 2012-01-12 15:38:12

+0

在我的問題中添加:) – DarkMantis 2012-01-12 15:52:11

+2

如果你去掉它們,那麼它將不會是JSON。你爲什麼認爲你需要這樣做? – Quentin 2012-01-12 15:53:31

回答

6

EDITED按anubhava的評論

$str = '{"start_date":"2011-01-01 09:00","end_date":"2011-01-01 10:00","text":"test"}'; 
$str = preg_replace('/"([^"]+)"\s*:\s*/', '$1:', $str); 
echo $str; 

這當然適用於上述字符串,雖然有可能是我沒有想到的一些邊緣的情況下爲其這是不行的。這是否適合你的目的取決於字符串格式和它包含的元素/值的靜態方式。

+0

不錯,但我認爲'preg_replace('/「([^」] +)「\ s *:\ s * /','$ 1:',$ str)''可能會更安全一些 – anubhava 2012-01-12 17:05:56

+0

@anubhava好點,編輯我的答案 – DaveRandom 2012-01-12 17:10:49

+0

我收到一個異常:'preg_replace():沒有結束分隔符'/'找到' – 2014-07-02 05:41:07