JSON简介

目录

一、JSON的定义

二、JSON的特点

三、json和js对象的区别

JSON和JS对象的相互转换:

四、JSON的作用

五、JSON数据格式

六、JSON数据定义规则

七、JSON和XML比较

八、简单总结一哈子


一、JSON的定义

JSON是一种轻量级的数据交换格式,它基于JavaScript中的一个子集定义。JSON是JavaScript Object Notation的缩写,但它是语言无关的,这意味着JSON可以在任何编程语言中使用,不仅限于JavaScript。

二、JSON的特点

  • 易于程序员阅读和编写。
  • 易于计算机解析和生成。
  • 其实是javascript的子集:原生javascript支持JSON

三、json和js对象的区别

JSON 对象是纯文本,不包含任何方法或函数。

JSON和JS对象的相互转换:

html 复制代码
    <script>
        //下面定义的是JS对象
        var student = {
            name:'zhang',
            age:23,
            print:function () {
                console.log(this.name + '的年龄是' + this.age + '岁');
            }
        }
        console.log(student.name);
        student.print();
        var s = JSON.stringify(student);
        console.log('JS转化为JSON:')
        console.log(s); //将js转化为json
        console.log(typeof (JSON.stringify(student)));
        console.log('JSON转化为JS:')
        var obj = JSON.parse(s); //将JSON转化为js对象
        console.log(obj);
        console.log(typeof (obj));
    </script>

上面的代码输出如下:

四、JSON的作用

  1. 使用ajax进行前后台数据交换
  2. 移动端与服务端的数据交换

五、JSON数据格式

JSON数据格式总结下来有两种:

1、对象格式:{"key1":obj1, "key2":obj2, "key3":obj3...} //key值一定要加引号

2、数组/集合格式: obj1,obj2,obj3...

注意:JSON的key是字符串,JSON的value是Object,不能是函数、undefined和NaN

六、JSON数据定义规则

1、映射用冒号(":")表示。名称:值

2、并列的数据之间用逗号(",")分隔。名称1:值1,名称2:值2

3、 映射的集合(对象)用大括号("{}")表示。{名称1:值1,名称2:值2}

4、并列数据的集合(数组)用方括号("\[\]")表示。如下:

{名称1:值,名称2:值2}, {名称1:值,名称2:值2}

5、 元素值可具有的类型:string, number, object, array, true, false, null

6、对象(Object)用大括号({})表示

Student:
{
"id" : 12,
"name" : "java1711",
"age" : 20,
"gender" : "男"
}

7、数组(Array)用方括号(\[\])表示:

List: {},{},{}

{ "id" : 12, "name" : "java1711", "age" : 20, "gender" : "男" }, { "id" : 13, "name" : "java1712", "age" : 21, "gender" : "女" }

七、JSON和XML比较

JSON常备拿来与XML做比较,因为JSON的诞生本来就或多或少要有取代XML的意思。

相比XML,JSON的优势如下:

  1. 没有结束标签,长度更短,读写更快。
  2. 能够直接被JavaScript解析器解析。
  3. 可以使用数组。

同一个对象分别用JSON和XML定义如下:

(1)用JSON:

{

"id" : 12,

"name" : "gao",

"age" : 30,

"gender" : "男",

"interests" : "篮球", "爬山", "旅游"

}

(2)用XML:

html 复制代码
<root>
    <id>12</id>
    <name>gao</name>
    <age>30</age>
    <gender>男</gender>
    <interest>篮球</interest>
    <interest>爬山</interest>
    <interest>旅游</interest>
</root>

可以看出用定义比较简洁,而且JSON可以直接使用数组,但是XML没有直接定义数组,如果数组很长,我们的代码中就要添加大量的没有实际意义的开始和结束标签,这对于网络传输是不利的。现在的XML主要是用在配置文件。

八、简单总结一哈子

综上,JSON其实就是一种数据格式;

而且它和语言没有关系;

它还可以在网络中传输;

它最主要的任务就是进行数据交换:

  1. 使用ajax进行前后台数据交换
  2. 移动端与服务端的数据交换

JSON定义是是采用键值对的形式,键值必须要用引号括起来,值不能是函数、undefined和NaN类型;

最后它最大的优点就是:简单明了易编写和阅读。

!!!!

相关推荐
朝朝辞暮i3 分钟前
C++ 第 5 课:else if + 多条件判断 + && / || / !
开发语言·c++
画绛集美术6 分钟前
用开源AI语音合成做课程口播音频:一间美术教室的技术笔记
人工智能·笔记·音视频
ynchyong7 分钟前
python list 地常用操作
开发语言·python
千谦阙听10 分钟前
【C++篇】:string类——常用接口、底层原理与深浅拷贝
开发语言·c++·学习·visual studio
摇滚侠13 分钟前
《Spring Boot 3:高级与架构设计》第 3 章 Bean 的全生命周期原理 Bean 的全生命周期概览 阅读笔记 9
spring boot·笔记·后端
高山有多高21 分钟前
【Linux笔记】冯诺依曼体系结构
linux·运维·笔记
linux_cfan31 分钟前
videojs v10 源代码系列解读:32 · Reactor 模型:信号驱动的状态机
前端·javascript·音视频
羲云37 分钟前
给页面加一个 JSON 编辑器:jsoneditor 的功能、配置和接入注意事项
javascript
m0_3807438742 分钟前
PHP7.1项目升级到8.3报错怎么解决
开发语言·php
福兮说43 分钟前
Base64 遇上中文和 emoji:btoa 报错、解出一串 %E7、URL 里加号变空格,六个坑一次说清
前端·javascript·base64·编码