JSON结果格式错误

Roh*_*har 0 php arrays json escaping function

我的JSON值是这样的 -

$arr2 = array('dn'=>'NR/2014/02/1257','dd'=>'1393934346');
$arr=array('id'=>'123456','fname'=>'ABC','lname'=>'XYZ','dt'=>array($arr2));
$json = json_encode($arr));
Run Code Online (Sandbox Code Playgroud)

结果 -

{
  "id":"123456","fname":"ABC","lname":"XYZ",
  "dt":[
          {"dn":"NR\/2014\/02\/1257","dd":1393934346}
       ]
}
Run Code Online (Sandbox Code Playgroud)

在哪个dn值,NR\/2014\/02\/1257但我希望dn值是NR/2014/02/1257我的真实dn值.

有谁能够帮我???

Sha*_*ran 6

你应该使用JSON_UNESCAPED_SLASHES作为ur json_encode()函数的参数.从PHP 5.4.0开始提供.

<?php
$arr2 = array('dn'=>'NR/2014/02/1257','dd'=>'1393934346');
$arr=array('id'=>'123456','fname'=>'ABC','lname'=>'XYZ','dt'=>array($arr2));

echo $json = json_encode($arr,JSON_UNESCAPED_SLASHES);
Run Code Online (Sandbox Code Playgroud)

OUTPUT :

{"id":"123456","fname":"ABC","lname":"XYZ","dt":[{"dn":"NR/2014/02/1257","dd":"1393934346"}]}
Run Code Online (Sandbox Code Playgroud)

Demo


PHP版本小于5.4.0的转换,不支持JSON_UNESCAPED_SLASHES,做一个简单的替换反斜杠就可以了.

echo $json = str_replace('\\','',json_encode($arr));
Run Code Online (Sandbox Code Playgroud)