JSON详解
/*
* json对象的取值方法两种
* obj.属性名
* obj[属性名]或obj[‘属性名‘]
* 若json的对象的key是数字(包括字符串型的 如‘8‘,‘1‘)
* 那取值的时候就必须采用obj[属性名] 且属性名既可以为字符串型 也可以是整数型
* json对象存储的数据的是无序的 且不重复的(key不能重复)并且后面的相等的key元素会覆盖前面的
* json对象似于JAVA中的map结构
*在JSON中,有两种结构:对象和数组。
1. 一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间运用 “,”(逗号)分隔。 名称用引号括起来;值如果是字符串则必须用括号,数值型则不须要。例如:
var o={"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"};
2. 数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间运用 “,”(逗号)分隔。
*/
var obj = {"s":1,‘9‘:2,9:3};
//alert(obj.9);//报错 不建议使用基本类型做Key(包括字符串型的 如‘8‘,‘1‘)
//alert(obj[‘9‘]);//2 json对象的key是数字(包括字符串型的 如‘8‘,‘1‘) 获取value采用此种方法
//alert(obj.s);//1
//alert(obj[‘s‘]);//1
for( var o in obj){
// alert(o);//9,s //说明obj(json对象)散列结构 无序的 并且不可以重复 ‘9‘和9是等同的 并且后面的相等的key元素会覆盖前面的
// alert(obj[o]); //3,1
}
var obj_arr =[{‘8‘:1,‘9‘:2}];//json数组
// alert(obj_arr[0][‘8‘]);//1
var str = {"name": "cxh", "sex": "man" };//json对象
//alert(str.name);//cxh
var jsonranklist=[{"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"},{"xlid":"zd","xldigitid":123456,"topscore":1500,"topplaytime":"2009-11-20"}];//json数组
//alert(jsonranklist.length);//2
//alert(jsonranklist[0].xlid);//cxh
/**
* json字符串转化为json对象的三种方法
*
*/
var str1 = ‘{"name": "cxh", "sex": "man" }‘;//json字符串
var test = eval(‘(‘ + str1 + ‘)‘);//字符串转化为json对象
//alert(test.name);//cxh
var json_t = JSON.parse(str1); //由JSON字符串转换为JSON对象
//alert(json_t.name);
/*此方法报错 未尝试成功*/
//var json_d = str1.parseJSON(); //由JSON字符串转换为JSON对象
//alert(json_d.name);
本文出自 “The_Monster” 博客,请务必保留此出处http://zzqnobody.blog.51cto.com/7059797/1624921
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。