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类型;

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

!!!!

相关推荐
深盾科技_Virbox12 小时前
软件加密工具怎么选:试用验证、采购成本与授权范围
开发语言·安全·软件需求
A_cainiao_A12 小时前
C++20:std::stop_source让线程说停就听
开发语言·c++20
SEO_juper13 小时前
2026年Schema自动注入实战:用Python批量给1000个页面加上JSON-LD,AI引用率实测提升38%
人工智能·python·json·seo·独立站
大家的林语冰13 小时前
🎉 Vercel 官宣 Next 16.3 正式发布,GitHub 第一全栈框架再次进化!
前端·javascript·前端框架
fīɡЙtīиɡ ℡13 小时前
深入学习JAVA并发编程(上)
java·开发语言·学习
zzzll111113 小时前
HashMap、HashTable、ConcurrentHashMap 详细区别与深度解析
开发语言·python
PC2005-cloud13 小时前
KubeSphere学习笔记:部署nginx
笔记·学习·nginx
老师我太想进步了202613 小时前
C语言版讲解函数递归
c语言·开发语言
猿长大人14 小时前
C# | 函数式编程入门
开发语言·c#·.net
W_3260014 小时前
Python 组合数据类型——序列(列表 & 元组)
开发语言·python