• 01_JSON的理解


    1、什么是JSON

    全称 JavaScript Object Notation,即JavaScript对象标记法
    JSON本身是参考JavaScript对象的规则定义的,其语法与JavaScript定义对象的语法几乎完全相同

    2、为什么要用JSON

    JSON可以很轻松的和JS中的数据类型互相转换

    3、JSON的格式规定

    在这里插入图片描述

    1> 对象 (Object)概念图

    在这里插入图片描述

    对象(0bject):对应着JS中的对象
    	对象用大括号(“{}”)括起来,大括号里是一系列的“名称/值对”,
    	两个并列的数据之间用逗号(“,”)隔开,使用英文的逗号(“,”),最后一个“名称/值对“之后不要加逗号
    	JSON中Key/Value不能使用单引号
    	JSON中对象的属性名必须是双引号,属性值如果是字符串也必须是双引号
    	JSON只要涉及到字符串就必须使用双引号,不支持undefined
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    2> 数组(Array)概念图

    在这里插入图片描述

    数组(Array):对应着JS中的数组形式
    	数组表示一系列有序的值,用方括号(“[]”)包围起来,并列的值之间用逗号分隔
    	数组中的字符串必须使用双引号
    	JSON中只要涉及到字符串 就必须使用双引号
    	不支持undefined
    	
    如:[1,2,"three","four",true,false,null,[1,2],{"name":"张珊"}]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3> 简单形式

    简单形式:对应着JS中的基础数据类型
    	JSON的简单值的格式对应着JS中的基础数据类型:数字 字符串 布尔值
    	JS中一共有六种数据类型:基本类型和引用类型
    	JS基本数据类型五种:
    		String(字符串)、
    		Number(数值)、
    		Boolean(布尔值)、
    		Null(空对象)、
    		Undefined(未赋值)
    	JS引用数据类型一种:
    		Object(对象类型),如:Object、array、function
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    3.1> 简单形式1:名称/值对(Name/Value) 概念图

    在这里插入图片描述

    名称/值对(Name/Value)
       	名称(Name)是一个字符串,要用双引号括起来,
       		不能用单引号,也不能没有引号,这点与JS不同
       	值的类型只有七种:
       		字符串(string)、
       		数值(number)、
       		对象(object)、
       		数组(array),
       		 true、
       		 false、
       		 null。
       	注意:不能有undefined、函数等类型
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    3.2> 简单形式2:字符串(string)概念图

    在这里插入图片描述

    字符串(string)
       	英文双引号括起来,不能用单引号,也不能没有。
       	字符串中不能单独出现双引号(”)和右斜杠(“\")
       	如果要打双引号或右斜杠,需要使用“右斜杠+字符”的形式,例如\”和\\
       	
    注意:JSON中没有undefined、字符串必须使用双引号、不能用注释的
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    4、JSON字符串和JS对象的转换

    JSON字符串转换为JS对象,JSON.parse()
    JS对象转化为JSON字符串,JSON.stringify()
    
    • 1
    • 2

    JSON字符串转换为JS对象

    //JSON字符串
    var stuJson = '{"name":"张珊","age":22,"address":"四川"}'
    //将JSON字符串转化为JS对象
    var stuObj = JSON.parse(stuJson)
    console.log(stuObj)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    JS对象转化为JSON字符串

    //JSON对象字符串
    var stuJson = '{"name":"张珊","age":22,"address":"四川"}'
    //将JSON对象字符串转化为JS对象
    var stuObj = JSON.parse(stuJson)
    //输出JS对象
    console.log(stuObj)
    			 
    console.log('-------------------------')
    			 
    //将JS对象转换为JSON字符串
    var stu =  JSON.stringify(stuObj)
    //输出JSON字符串
    console.log(stu)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    在这里插入图片描述

    5、JSON对象和JS对象的区别

    JSON是JS的一种简单的数据格式,
    	JSON是javaScript的原生格式,
    	它是一种严格的js对象的格式,JSON的属性名必须有双引号,如果值是字符串,也必须是双引号;
    	JSON是从属于JS,并且在处理JSON,数据时可直接使用JS内置API;
    
    • 1
    • 2
    • 3
    • 4
    案例:
    //JS对象
    var obj1={width:100,height:200}
    //JS对象(加了引号的属性名)
    var obj2={'width':100,'height':100}
    //JSON格式的JS对象(JSON对象,属性名使用双引号)
    var obj3={"width":100,"height":100,"name":"rose"}
    //JSON格式的字符串(只是一个字符串)
    var obj4='{"width":100,"height":200,"name":"rose"}';
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    区别:
    	JSON对象:仅仅是一种数据格式,
    		1.键值对方式,键必须加双引号 
    		2.值不能是方法函数,不能是undefined/NaN
    	JS对象:表示类的实例,
    		1.键值对方式,键不加引号 
    		2.值可以是函数、对象、字符串、数字、boolean 等
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    6、JSON对象和JSON字符串的区别以及转换

    区别:
    Json对象:对象的值可以用 “对象.属性” 进行访问
    Json字符串:单引号或者双引号引起来

    var json = '{"name":"imooc"}'; // 这个是正确的JSON格式
    var json = "{\"name\":\"imooc\"}"; // 这个也是正确的JSON格式
    
    • 1
    • 2

    转换:Json对象转化为Json字符串,调用 JSON.stringify()

    var  obj = {"name":"shily","sex":"女","age":"23"}//json对象
    var  objToStr = JSON.stringify(obj);
    console.log(objToStr);
    console.log(typeof objToStr)
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    7、JS对象加单引号和不加引号的区别

    在JavaScript中,加引号与不加引号都是一样用,都是有效的
    什么时候有区别。即在使用一些非合法命名规则的时候,
    就有必要加单引号(比如属性名是以数字开头,就需要加单引号
    
    • 1
    • 2
    • 3
    案例:
    var obj = {name:'张珊','age':18,'246addr':'北京'};
    console.log(obj.name);
    console.log(obj['age'])
    console.log(obj['246addr'])
    
    • 1
    • 2
    • 3
    • 4
    • 5

    属性名称非法,需加引号
    在这里插入图片描述

  • 相关阅读:
    【ARXIV2207】LightViT: Towards Light-Weight Convolution-Free Vision Transformers
    vue3+vite项目在按需导入vant后, 打包构建时报错
    手把手教你搭建 Ceph+JuiceFS
    小程序如何设置用户同意服务协议并上传头像和昵称
    RustDay03——记录刷完Rust100题
    03 树莓派QEMU模拟器介绍
    ESP8266-Arduino编程实例-OLED显示DS18B20传感器数据
    PTA 7-4 数列求和-加强版
    神机百炼3.52-Prim
    基于uclinux 的CAN 总线嵌入式驱动编程
  • 原文地址:https://blog.csdn.net/allurelover/article/details/126613932