当前位置: 首页 > news >正文

JSON的理解

文章目录

  • 1、什么是JSON
  • 2、为什么要用JSON
  • 3、JSON的格式规定
    • 3.1 对象(0bject):对应着JS中的对象
    • 3.2 数组(Array):对应着JS中的数组形式
    • 3.3 简单形式:对应着JS中的基础数据类型
  • 4、JSON和Js的转换
  • 5、JSON对象和Js对象的区别
  • 6、JSON对象和JSON字符串的区别以及转换
  • 7、JS对象加单引和不加引号的区别

1、什么是JSON

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

2、为什么要用JSON

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

3、JSON的格式规定

3.1 对象(0bject):对应着JS中的对象

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

3.2 数组(Array):对应着JS中的数组形式

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

3.3 简单形式:对应着JS中的基础数据类型

		JSON的简单值的格式对应着JS中的基础数据类型:数字 字符串 布尔值JS中一共有六种数据类型:基本类型和引用类型JS基本数据类型五种:String(字符串)、Number(数值)、Boolean(布尔值)、Null(空对象)、Undefined(未赋值)JS引用数据类型一种:Object(对象类型),如:Object、array、function简单形式1:名称/值对(Name/Value)名称(Name)是一个字符串,要用双引号括起来,不能用单引号,也不能没有引号,这点与JS不同值的类型只有七种:字符串(string)、数值(number)、对象(object)、数组(array), true、false、null。不能有undefined、函数等类型简单形式2:字符串(string)英文双引号括起来,不能用单引号,也不能没有。字符串中不能单独出现双引号(”)和右斜杠(“\")如果要打双引号或右斜杠,需要使用“右斜杠+字符”的形式,例如\”和\\注意:JSON中没有undefined、字符串必须使用双引号、不能用注释的

4、JSON和Js的转换

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

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

	JSON是JS的一种简单的数据格式,JSON是javaScript的原生格式,它是一种严格的js对象的格式,JSON的属性名必须有双引号,如果值是字符串,也必须是双引号;JSON是从属于JS,并且在处理JSON,数据时可直接使用JS内置API;案例://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”}’;
区别:
JSON:仅仅是一种数据格式,1.键值对方式,键必须加双引号 2.值不能是方法函数,不能是undefined/NaN
Js对象:表示类的实例,1.键值对方式,键不加引号 2.值可以是函数、对象、字符串、数字、boolean 等

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

	区别:Json对象:对象的值可以用 “对象.属性” 进行访问Json字符串:单引号或者双引号引起来var json = '{"name":"imooc"}'; // 这个是正确的JSON格式var json = "{\"name\":\"imooc\"}"; // 这个也是正确的JSON格式转换:Json对象转化为Json字符串( JSON.stringify() ) var  obj = {"name":"shily","sex":"女","age":"23"}//json对象var  objToStr = JSON.stringify(obj);console.log(objToStr);console.log(typeof objToStr)

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

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

相关文章:

  • 面试热题(二叉树的最大路径)
  • C#设计模式之--六大原则 开闭原则
  • 编写Dockerfile制作自己的镜像并推送到私有仓库
  • 华为OD-分积木/分苹果
  • Mysql的引擎有哪些?支持事物么?DB储存引擎有哪些?
  • 【懒加载】js实现懒加载、vue实现图片懒加载指令
  • 微信小程序教学系列(7)
  • Android 9.0 kenel和frameworks中修改ram运行内存的功能实现
  • PHP实践:获取网络上图片的长宽以及图片类型
  • 使用 DPO 微调 Llama 2
  • 数据库——事务,事务隔离级别
  • 对《VB.NET通过VB6 ActiveX DLL调用PowerBasic及FreeBasic动态库》的改进
  • 【PHP】数据类型运算符位运算
  • 使用 Nacos 作为 Spring Boot 配置中心
  • 微服务 Eureka
  • Spring Boot 事务和事务传播机制
  • 计算机组成原理(巨巨巨基础篇)
  • C语言:选择+编程(每日一练Day7)
  • leetcode做题笔记93. 复原 IP 地址
  • HTTPS 中间人攻击
  • MATLAB打开excel读取写入操作例程
  • [C语言]分支与循环
  • 绘制区块链之链:解码去中心化、安全性和透明性的奇迹
  • 4G工业路由器的功能与选型!详解工作原理、关键参数、典型品牌
  • c与c++中struct的主要区别和c++中的struct与class的主要区别
  • mysql中char_length()和length()
  • Numpy学习笔记
  • LAMP配置与应用
  • Dockerfile搭建LNMP运行Wordpress平台
  • 数据库第十五课-------------非关系型数据库----------Redis