對于鍵名為數字或者非正常變量字符時(如有空格),必須使用obj[xx]方式獲取值。
<?php
//聲明json數據
$array = array('result'=>array("90"=>"90隊列","status"=>"成功"));
$json = json_encode($array);
$array1 = array("90"=>"90隊列","status"=>"成功");
$json1 = json_encode($array1);
$phpjson = json_decode($json1,true);//第二個參數是true,表示把json數據轉換為數組
//對于json鍵名是數字時,只能用數組方式處理$phpjson['90'];
?>
<!DOCTYPE unspecified PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
</head>
<body>
<script type="text/javascript">
/**
* 測試json數據調用示例
*/
function test(){
//調用方式一
var data = '<?php echo $json?>';//php json數據,這里只能用單引號,因為php的json數據中有雙引號了
data = eval("("+data+")");//js 解析json數據,主要是因為json數據用單引號后變為字符串了
alert(data['result'][90]);//對于數字需要用數組的方式訪問
alert(data['result'].status);//對于非數字可以使用.的方式訪問
//調用方式二
var data1 = <?php echo $json1?>;//php json數據,這里沒有用單引號,因為直接是json數據
alert(data1[90]);//對于數字需要用數組的方式訪問
alert(data1.status);//對于非數字可以使用.的方式訪問
alert(data1['status']);//還可以使用數組方式調用
//注:對于鍵名為數字或者非正常變量字符時(如有空格),必須使用obj[xx]方式獲取值。
}
</script>
<input type="button" value="button" onclick="test();"/>
</body>
</html>
js獲取json對象鍵名及值
遇到{"1",:"a"},{"2","b"}這種json對象,鍵名不固定,然后就不知道怎么取了,監視器下面是個object,沒有什么屬性方法。方法如下:
d = {"1": "a", "2": "b"}
for(i in d)
{
i 就是鍵,d[i]就是值
}
真是難者不會,會者不難啊。
<script>
d = {"1": "a", "2": "b"}
function GetJArray(selIndex,arr){
var index =0;
for(i inarr)
{
if(index == selIndex){
//i就是鍵,arr[i]就是值
document.write(i + ',' + arr[i] +'<br/>');
}
index +=1;
}
}
GetJArray(1,d);
</script>