JSON 教程,JSON 在线

872JSON 数组

json数据格式:主要由对象 { } 和数组 [ ] 组成:

其中对象包括键值对(属性:属性值){key: value},value 可为 str,num,list,obj。取值使用 objcet.key

{key: value, key2:value2,} 键:值用冒号分开,对间用,连接

数组包含元素:num,str,list,objcet 都可以,利用索引访问 [index],用 . 连接各个值:

e.g:

var stu = {"student":           //stu 对象包含student的key,值为一个数组
[                                     //数组的每一个值为一个具体的学生对象
{"name": "Tom","Grade":1, "age":11, "gender": "M"},     //学生对象的键为名字,值为对应属性
{"name": "Jerry", "Grade":1, "age":10, "gender": "M"}       //每个属性对应的是一个key,value对
],
"classroom": {"class1": "room1", "class2": "room2"}         //对象的值,嵌套对象
};

读取数据:

document.write(stu.student[1].name);     // 输出第二个学生名
document.write(stu.student[0].age);      // 输出第一个学生年龄
document.write(stu.classroom.class1);    // 输出 classroom 的 class1 值
document.write(stu["classroom"].class2); // 也可用中括号键访问对象值

尝试一下 »

871JSON 对象

json 在进行通过键名来获取值时,需要特别注意一下。

把键名赋值给另外一个变量,然后通过.方式去获取值。这种方式是行不通的。

var myObj, x;
myObj = { "name":"facesoho", "alexa":10000, "site":null };
x = "name";
document.getElementById("demo").innerHTML = myObj.x;  // 结果是 undefined

只能通过 [] 方式去访问:

var myObj, x;
myObj = { "name":"facesoho", "alexa":10000, "site":null };
x = "name";
document.getElementById("demo").innerHTML = myObj[x];  // 结果是 facesoho

870JSON 对象

在使用for遍历时,只能通过 myObj[x] 来获取相应属性的值,而不能使用 myObj.x

facesoho
10000
www.facesoho.com

869JSON 对象

json 对象和 json 字符串的区别:

json 对象

var str2 = { "name": "asan", "sex": "man" };

json字符串

var str1 = '{ "name": "deyuyi", "sex": "man" }';