2011-11-26 37 views
0

我打算生成的JSON是这样的:PHP json_encode额外报价

{ “专卖店”:[{ “名称”: “ABC”, “手机”, “1234567”},{ “名称”: “高清”, “手机”, “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)); 

然而结果似乎有围绕方括号的双引号:

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

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

谢谢!

+0

您可以通过不增加他们删除它们;) – hakre

回答

3

只有转换成JSON一次,一旦你有完整的对象的方式,你希望它:

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

真棒的感谢! –

+0

来自downvoters的任何建议? –

1

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

0

简单的办法是

$my_string = json_encode($my_json,JSON_FORCE_OBJECT);