JSON和JSON解析-前后端分离中的数据格式,即使用ajax拿到的数据格式

JSON是一种轻量级的用来存储与传输数据的格式,独立于语言的文本格式,常用于在服务器与网页之间传输的数据。如果作为独立的文件存在,它的后缀为.json

一、JSON概念

JSON全称JavaScript Ojbect Notation,翻译过来就是JavaScript 对象表示法。

JSON是一种轻量级的用来存储与传输数据的格式,独立于语言的文本格式,常用于在服务器与网页之间传输的数据。如果作为独立的文件存在,它的后缀为.json

二、JSON的语法

语法跟对象99%相似,下面标粗的部分即为两者不同的部分。

1、Object对象的语法:

  • 花括号包裹
  • 属性名/属性值成对出现(键值对)(key-value)
  • 属性之间用逗号,分隔,最后一个可以不要
  • 属性名的命名规范跟变量一样
  • 值可以是任意类型-最重要的一点
//比如:
var obj={
    key:value,//键值对格式,属性名不需要引号
    age:18, 
    name:'imqd',
    isGirl:false,
    ....
}

2、json语法

  • 花括号包裹
  • 属性名/属性值成对出现(键值对)(key-value)
  • 属性之间用逗号,分隔,最后一个一定不要
  • 属性名的命名规范跟变量一样,但是属性名也加双引号
  • 值可以是任意类型-最重要的一点,不要放undefined或函数
//比如
var json={
    "key":"value",//键值对格式,都要打引号
    "age":"18", 
    "name":"imqd",
    "isGirl":"false",
    ....
}
//字符串数组也是json的表现之一
var json='[{"name":"zhangsan","age":25,"date":"2027-05-12"},{"name":"lisi","age":24,"date":"2027-05-12"}]'

注意:

一般会将以上{}的内容保存到一个独立的文件.json中

不能在JSON文件中写注释

学习的目的:

1、ajax需要加载数据,一般以json为主。即json是ajax要传递的数据格式

2、必备技能

3、实现前后端交互的请求数据。即前后端分离使用json进行交互。

三、JSON的特点

​ JSON 是纯文本
​ JSON 具有“自我描述性”(人类可读)
​ JSON 具有层级结构(值中存在值)
​ JSON 可通过 JavaScript 进行解析
​ JSON 数据可使用 AJAX 进行传输

四、JSON的解析

使用for…in…循环遍历提取,跟对象一样。

var json={
    "key":"value",//键值对格式,都要打引号
    "age":"18", 
    "name":"imqd",
    "isGirl":"false"
    ....
}
//遍历
for(var prop in json){
    console.log(json[prop]);//会循环输出该json的属性值,比如‘18’
}

五、JSON对象的方法

ECMAscript 5定义了一个原生JSON对象。JSON对象和Math对象都是已经被实例化的对象,不需要通过new关键字创建实例对象,可以在代码中直接使用。

数据传输的是JSON字符串文本;

javascript能处理的是JSON对象;

所以,JSON对象和JSON字符串之间的相互转换是关键。

1、JSON.parse() 方法用于将JSON字符串文本转换为JSON对象。

//语法:
JSON.parse(text,[function]) 

//示例:
JSON.parse('{}');              // {}
JSON.parse('true');            // true
JSON.parse('"foo"');           // "foo"
JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
JSON.parse('null');            // null
JSON.parse('1');               //  1

2、将js的值转化成JSON文本:JSON.stringify(obj)

该方法与JSON.parse()是逆向的操作。

//语法:
JSON.stringify(obj);

//示例:
JSON.stringify({});                        // '{}'
JSON.stringify(true);                      // 'true'
JSON.stringify("foo");                     // '"foo"'
JSON.stringify([1, "false", false]);       // '[1,"false",false]'
JSON.stringify({ x: 5 });                  // '{"x":5}'

JSON.stringify({x: 5, y: 6});              
// "{"x":5,"y":6}"

JSON.stringify([new Number(1), new String("false"), new Boolean(false)]); 
// '[1,"false",false]'

六、验证json是否合法的方式

对于初学者,往往不知道自己的写的json格式是否规范、正确,可以用如下两种方式验证:

1、谷歌浏览器或火狐浏览器安装json验证插件,如果无法直接访问谷歌应用商店,可以百度搜索,然后离线安装

image-20220619134021188

2、在线搜索json验证,找到在线验证工具,复制json后点击验证查看结果

image-20220619141457724

除特别声明外, 本站所有内容皆为原创,未经许可,禁止转载。转载时请务必以超链接形式标明文章出处和作者信息
  • 1,234
(1)
打赏 微信扫一扫 微信扫一扫

关于作者:

web前端老罗

贡献:已经在WEB前端圈发表89篇文章了,你也来试试

简介:前端老罗是一位拥有多年web前端开发经验、管理经验、教学经验的实战派全栈工程师。目前在某名企任职WEB前端技术教官。加我微信:imqdcnn可提供开发、技术咨询、答疑、直播讲座等服务

Ta的专栏 | Ta的站点 | 其他SNS

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关于WEB前端圈

我是前端人(imqd.cn)愿景是不管你是想学习前端还是一名专业的WEB前端工程师在这里都能找到你想要的物料。定位为前端人学习进步的一个平台。在这里你能找到前端学习笔记、教学视频资源、案例、前后端分离、前端框架、低代码平台、可视化数据、多端开发、全栈开发等跟前端有关的一切资源!

关于站长:WEB前端老罗(罗老师)是一位拥有多年web前端开发经验、管理经验、IT培训教学经验的实战派全栈工程师。目前在某名企任职WEB前端技术教官。右边加我微信可提供开发、技术咨询、答疑、直播讲座等服务

WEB前端圈二维码

右边添加老罗微信一对一免费私聊
拉你加入官方微信答疑群

To top