JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript语法,但是它也可以在其他语言中使用。JSON的键名可以是字符串或数字。当键名为数字时,调用方式有所不同。
// 例如: var json = { "1": "a", // 键名为字符串 2: "b" // 键名为数字 }; // 调用方式: console.log(json["1"]); // 输出 a (键名为字符串时使用双引号) console.log(json[2]); // 输出 b (键名为数字时不使用双引号)
当 JSON 的键名是数字时,调用方式就要求不使用双引号。这是因为 JavaScript 在处理对象属性时会将属性作为一个标识符来处理。如果属性是一个有效的标识符(即不包含特殊字符或关键字并以一个有效的标识符开头)则不必使用引号来表明它是一个属性而不是一个方法或关键字。而 JSON 的键名都是有效的标识符,所以当 JSON 的键名是数字时就不必使用双引号来表明它是一个属性而不是一个方法或关键字。
本文介绍当JSON的键名为数字的时候应该使用的调用方式,对于键名为数字或者非正常变量字符时(如有空格),必须使用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">
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>
我们在使用AJAX来做服务器端和客户端交互的时候,一般的做法是让服务器端返回一段JSON字符串,然后在客户端把它解析成JavaScript...
Dialog close() 方法Dialog 对象实例显示和关闭对话窗口:var x = document.getElementById("myDialog");function showDialog() {...
Submit name 属性 Submit 对象定义和用法name 属性可设置或者返回提交按钮的 name 属性值。name 属性用于表单提交后向服务器传送...
onseeked 事件事件对象实例在用户重新定位视频的播放位置后执行 JavaScript :video onseeked="myFunction()"本文底部包含了更多...
HTML DOM 导航 通过 HTML DOM,您可以使用节点关系在节点树中导航。HTML DOM 节点列表 getElementsByTagName() 方法返回节点列表...