likes
comments
collection
share

JS学习之JSON数据格式

作者站长头像
站长
· 阅读数 25

JSON简析

1.简介

  • JSON,是一种数据格式不是编程语言,它和JavaScrip并没有从属关系,任何编程语言都可以使用JSON;

2.语法规则

  • JSON分为三类
  • 简单值:与JS语法相同,可以在JSON中表示字符串,数值,布尔值和null,但是其不支持undefined;

    5  // 数值
     "Hello World"  //字符串
  • 对象:键值和键名都得用双引号;

    let person  = {
    "name":"Tom",
    "age" : "18"}
  • 数组

    [25, "hello", true]
    [{"name":"Tom"},
     {"name":"Lily"}]

3.解析和序列化

  • JSON.stringify(目标JS对象,过滤器,字符串缩进)(JS对象---->JSON对象)

    let person= {
     name: "Tom",
     age  : 18,
     language:"Eng"
    }
    //1.过滤器
     数组形式
       let res = JSON.stringify(person,["name","age"])
       //{ name: "Tom", "age"  : 18}
     函数形式
         let res = JSON.stringify(person,(key,value)=>{
         switch(key){
           case "name":
              return value;
           case "age""
              return 20;
           case "language";
              return undefined }}) //返回undefined删除该属性
      //{name: "Tom", "age"  : 20}
    //2.字符串缩进
     数字形式
      let res = JSON.stringify(person,null,4),每行缩进4字符,最大为10,过10也为10;
     字符形式
       let res = JSON.stringify(person,null,"--")空格被-代替,最大为10,过10为10
  • JSON.parse(目标JSON对象,过滤器)(JSON对象---->JS对象)

     let res = JSON.parse(person,(key,value)=>{
         switch(key){
           case "name":
              return value;
           case "age""
              return 22;
           case "language";
              return undefined }}) //返回undefined删除该属性
      //{name: "Tom", "age"  : 22}

4.注意

  • 字符串必须用双引号;
  • 对象的键值对也不用双引号,若是number,boolean,或者null可不用;
参考资料:《JS高级程序设计》