PHP json_encode在数组方括号之前的额外引用

时间:2011-11-26 20:22:44

标签: php json

我打算生成类似这样的JSON:

{ “stores”:[{“Name”:“abc”,“Phone”,“1234567”},{“Name”:“def”,“Phone”,“1111111”}], “numResults”:2 }

我的PHP代码是这样的:

       while($row = mysql_fetch_assoc($result)){
            $store[] = $row;
            $k++;
       }
       $obj['stores'] = json_encode($store);           
       $obj['numResult'] = $numResult;           
       echo stripslashes(json_encode($obj));

然而,结果似乎在方括号周围有一对额外的双引号:

{ “stores”:“[{”Name“:”abc“,”Phone“,”1234567“},{”Name“:”def“,”Phone“,”1111111“}]”, “numResults”:2 }

如何删除它们? (或者实际上显示的是假设是正确的JSON格式?)

谢谢!

3 个答案:

答案 0 :(得分:3)

只有在您拥有完整对象后才能转换为JSON一次:

       while($row = mysql_fetch_assoc($result)){
            $store[] = $row;
            $k++;
       }
       $obj['stores'] = $store; // <---------Note change           
       $obj['numResult'] = $numResult;           
       $myJSONstring = json_encode($obj);

答案 1 :(得分:1)

你不需要两次json_encode。创建完全创建后的$obj变量和json_encode。

答案 2 :(得分:0)

简单的方法是

$my_string = json_encode($my_json,JSON_FORCE_OBJECT);