[英]JSON result formatting error
我的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
值將dn
值設為NR/2014/02/1257
dn
。
有誰能夠幫助我???
您應該將JSON_UNESCAPED_SLASHES
用作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));
您可以在使用json_encode()
函數(PHP版本必須> = 5.4)時設置JSON_UNESCAPED_SLASHES
參數。
但是字符串"NR\\/2014\\/02\\/1257"
與"NR/2014/02/1257"
JSON_UNESCAPED_SLASHES
"NR\\/2014\\/02\\/1257"
完全相同,因此JSON_UNESCAPED_SLASHES
。
console.log("NR\/2014\/02\/1257" === "NR/2014/02/1257"); //true
但是,如果將json字符串放在<script>
標記內,不允許在字符串內</
,那么轉義/
會更安全。
$json =json_encode($arr, JSON_UNESCAPED_SLASHES);
使用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));
它是php http://www.php.net/manual/en/json.constants.php中的預定義json常量之一。
var obj = jQuery.parseJSON(jsondata);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.