[关闭]
@zhouyy 2018-05-22T07:44:07.000000Z 字数 2106 阅读 576

Json

js


官网规定:键和值最好都应用双引号"key":"value"
JSON 语法是 JavaScript 对象表示语法的子集。

对象数组

  1. var sites = [
  2. { "name":"runoob" , "url":"www.runoob.com" },
  3. { "name":"google" , "url":"www.google.com" },
  4. { "name":"微博" , "url":"www.weibo.com" }
  5. ];
  6. ///可以像这样访问 JavaScript 对象数组中的第一项(索引从 0 开始):
  7. sites[0].name;
  8. //返回 runoob

对象

  1. myObj = {
  2. "name":"runoob",
  3. "alexa":10000,
  4. "sites": {
  5. "site1":"www.runoob.com",
  6. "site2":"m.runoob.com",
  7. "site3":"c.runoob.com"
  8. }
  9. }
  10. //你可以使用点号(.)或者中括号([])来访问嵌套的 JSON 对象。
  11. x = myObj.sites.site1;
  12. // 或者
  13. x = myObj.sites["site1"];
  14. //删除
  15. delete myObj.sites["site1"]

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

  1. var str2 = { "name": "asan", "sex": "man" };
  1. var str1 = '{ "name": "deyuyi", "sex": "man" }';

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

  1. <div id="demo"></div>
  2. <script>
  3. var myObj = { "name":"runoob", "alexa":10000, "site":"www.runoob.com" };
  4. for (x in myObj) {
  5. document.getElementById("demo").innerHTML += myObj[x] + "<br>";
  6. }
  7. </script>

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

其中对象包括键值对(属性:属性值){key: value},value 可为 str,num,list,obj。取值使用 objcet.key
{key: value, key2:value2,} 键:值用冒号分开,对间用,连接

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

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

读取数据:

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

JSON.parse()

JSON 通常用于与服务端交换数据。
在接收服务器数据时一般是字符串。

我们可以使用 JSON.parse() 方法将数据转换为 JavaScript 对象。
例如我们从服务器接收了以下数据:

  1. { "name":"runoob", "alexa":10000, "site":"www.runoob.com" }
  2. //我们使用 JSON.parse() 方法处理以上数据,将其转换为 JavaScript 对象:
  3. var obj = JSON.parse('{ "name":"runoob", "alexa":10000, "site":"www.runoob.com" }');

解析前要确保你的数据是标准的 JSON 格式,否则会解析出错。

你可以使用我们的在线工具检测:https://c.runoob.com/front-end/53

JSON.stringify()

JSON 通常用于与服务端交换数据。
在向服务器发送数据时一般是字符串。

我们可以使用 JSON.stringify() 方法将 JavaScript 对象转换为字符串。

  1. //例如我们向服务器发送以下数据:
  2. var obj = { "name":"runoob", "alexa":10000, "site":"www.runoob.com"};
  3. //我们使用 JSON.stringify() 方法处理以上数据,将其转换为字符串:
  4. var myJSON = JSON.stringify(obj);
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注