2012-01-12 103 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