我的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));
结果 -
{
"id":"123456","fname":"ABC","lname":"XYZ",
"dt":[
{"dn":"NR\/2014\/02\/1257","dd":1393934346}
]
}
其中dn
值为NR\/2014\/02\/1257
,但我希望dn
值为NR/2014/02/1257
值,而不是dn
值。
任何人都可以帮助我???
答案 0 :(得分:6)
您应该使用JSON_UNESCAPED_SLASHES
作为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);
<强> OUTPUT :
强>
{"id":"123456","fname":"ABC","lname":"XYZ","dt":[{"dn":"NR/2014/02/1257","dd":"1393934346"}]}
低于5.4.0的PHP版本的周转时间,不支持JSON_UNESCAPED_SLASHES
,执行简单的替换反斜杠就可以了。
echo $json = str_replace('\\','',json_encode($arr));
答案 1 :(得分:2)
使用JSON_UNESCAPED_SLASHES
函数时,您可以设置json_encode()
参数(PHP版本必须> = 5.4)。
但字符串"NR\/2014\/02\/1257"
与"NR/2014/02/1257"
完全相同,因此JSON_UNESCAPED_SLASHES
不是必需的。
console.log("NR\/2014\/02\/1257" === "NR/2014/02/1257"); //true
但是如果你将json字符串放在<script>
标记内,这不允许字符串中有</
,那么逃避/
会更安全。 强>
答案 2 :(得分:1)
$json =json_encode($arr, JSON_UNESCAPED_SLASHES);
答案 3 :(得分:0)
使用JSON_UNESCAPED_SLASHES
$arr2 = array('dn'=>'NR/2014/02/1257','dd'=>'1393934346');
$arr=array('id'=>'123456','fname'=>'ABC','lname'=>'XYZ','dt'=>array($arr2));
$json = json_encode($arr, JSON_UNESCAPED_SLASHES));
中预定义的json常量之一
答案 4 :(得分:0)
var obj = jQuery.parseJSON(jsondata);