0
点赞
收藏
分享

微信扫一扫

【JSON】

小安子啊 2022-02-03 阅读 47

JSON用法

JSON可以表示字符串、数值、布尔值、null

  • 字符串用法:需要注意的是JSON表示的字符串必须使用双引号包围起来
"Hello,Penrose!"

JSON可以表示对象

  • 语法:JSON表示的对象的属性必须用双引号包围起来,属性和值以键值对的形式表示,每一组键值对用逗号隔开。
{"name":"Penrose","age":22,"sex":"male","hobby":["跑步","健身"]}

JSON可以表示数组

  • 语法:数组中可以存放任意类型的数据。数组元素之间用逗号隔开,最后一个数组元素不用加逗号。数组和对象可以结合使用,表示复杂的数据类型。
[{"name":"Penrose","age":22,"sex":"male","hobby":["跑步","健身"]},{"name":"Rose","age":25,"sex":"male","hobby":["打篮球","旅行"]}]

JSON的序列化和解析

JSON是一个全局对象,是很多主流浏览器都支持的内置对象,JSON身上有两个方法,JSON.stringify()JSON.parse()

JSON.stringify()

  • 用法:将JavaScript对象或值转化为JSON字符串
  • 延伸:序列化就是将内存中的某个对象转化为可以传输的字节序列,而序列化的就是为 了跨平台和网络传输
  • JSON.stringify()会输出不包含空格或缩进的字符串

JSON.parse()

  • 用法:将JSON解析为原生JavaScript值

Tips:JavaScript对象经过序列化后转化为JSON字符串,如果再将该JSON字符串解析为原生JavaScript对象,则初始对象和解析后的对象是两个完全不同的对象。


代码示例
      //将js字符串转化为JSON字符串
      let str = 'Hello,Penrose!';
      let newStr = JSON.stringify(str);
      console.log(newStr);//"Hello,Penrose!"
    //将js表示的数组转化为JSON字符串
      let arr = [
        {
          name: "Penrose",
          age: 22,
          sex: "male",
          hobby: ["跑步", "健身"],
        },
        {
          name: "Rose",
          age: 25,
          sex: "male",
          hobby: ["打篮球", "旅行"],
        },
      ];
      let str = JSON.stringify(arr);
      console.log(str);//[{"name":"Penrose","age":22,"sex":"male","hobby":["跑步","健身"]},{"name":"Rose","age":25,"sex":"male","hobby":["打篮球","旅行"]}]
      
      //将JSON字符串解析为JavaScript对象
      let newArr = JSON.parse(str);
      console.log(newArr);//打印输出解析后的对象
      //验证初始对象和解析后的对象是否相同
      console.log(arr === newArr);//false
 //将js对象转化为JSON字符串
       let obj = {
        name: "Penrose",
        age: 22,
        sex: "male",
        hobby: ["跑步", "健身"],
      };

      let str = JSON.stringify(obj);
      console.log(str);//{"name":"Penrose","age":22,"sex":"male","hobby":["跑步","健身"]}

      let newObj = JSON.parse(str);
      console.log(obj);//{name: 'Penrose', age: 22, sex: 'male', hobby: Array(2)}
      //验证初始对象和解析后的对象是否相同
      console.log(obj === newObj);//false
举报

相关推荐

0 条评论