1. php 端json编码,js解码
一般在服务器到页面传输数据时,使用jason串传递,需要在php端使用json_encode将json对象编码为json串,然后在页面上得到的数据进行处理前,需要使用eval接收,有json串转回json对象
注意:dataType: "json",ajax中使用 dataType的话,不需要使用eval进行解析,得到是json串
<?php
$arr = array(
'Name'=>'希亚',
'Age'=>20
);
$jsonencode = json_encode($arr); //由json对象编码成json串
echo $jsonencode;
?>
<script type="text/javascript">
var jsonObj = {
key:function(){
return "abcdv";
},
key1:"key1String",
key2:2
}; //json对象
var jsonStr ='{key:function(){return "abcdv";},key1:"key1String",key2:2,}';
alert(jsonStr); //json字符串
var evalRes=eval('('+jsonStr+')'); //json字符串-->json对象
alert(evalRes); //json对象------object
alert(typeof evalRes.key); //json对象的key值---函数
</script>
2. php端json编码,php端json解码
<?php
$arr = Array(
Array(
"payTipKey"=>"资费说明2",
"payTipValue"=>"value2",
),
Array(
"payTipKey"=>"资费说明3",
"payTipValue"=>"value4",
)
);
$jsonEncodeStr = json_encode($arr);
echo $jsonEncodeStr;
echo "<br>";
$jsonDecodeObj = json_decode($jsonEncodeStr); //json_decode()
var_dump($jsonDecodeObj);
echo "<br>";
$jsonDecodeArr = json_decode($jsonEncodeStr,true);
var_dump($jsonDecodeArr);
echo "<br>";
foreach($jsonDecodeArr as $temp){
echo $temp['payTipKey'];
echo ":";
echo $temp['payTipValue'];
echo "<br>";
}
/* 结果:
* ************************************************
* $jsonEncodeStr:
* [{"payTipKey":"\u8d44\u8d39\u8bf4\u660e2","payTipValue":"value2"},{"payTipKey":"\u8d44\u8d39\u8bf4\u660e3","payTipValue":"value4"}]
*
* ***************************************************
* $jsonDecodeObj:对象
* array(2) { [0]=> object(stdClass)#1 (2) { ["payTipKey"]=> string(13) "资费说明2" ["payTipValue"]=> string(6) "value2" } [1]=> object(stdClass)#2 (2) { ["payTipKey"]=> string(13) "资费说明3" ["payTipValue"]=> string(6) "value4" } }
*
* ****************************************************
* $jsonDecodeArr:Array
* array(2) { [0]=> array(2) { ["payTipKey"]=> string(13) "资费说明2" ["payTipValue"]=> string(6) "value2" } [1]=> array(2) { ["payTipKey"]=> string(13) "资费说明3" ["payTipValue"]=> string(6) "value4" } }
*
*
* ***************************************************
* 遍历:
* 资费说明2:value2
* 资费说明3:value4
*
* */
?>