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

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

!!!!

相关推荐
m0_74823933几秒前
前端(Ajax)
前端·javascript·ajax
Fighting_p4 分钟前
【记录】列表自动滚动轮播功能实现
前端·javascript·vue.js
前端Hardy5 分钟前
HTML&CSS:超炫丝滑的卡片水波纹效果
前端·javascript·css·3d·html
开心工作室_kaic8 分钟前
springboot493基于java的美食信息推荐系统的设计与实现(论文+源码)_kaic
java·开发语言·美食
析木不会编程14 分钟前
【C语言】动态内存管理:详解malloc和free函数
c语言·开发语言
神仙别闹20 分钟前
基于Java2D和Java3D实现的(GUI)图形编辑系统
java·开发语言·3d
Domain-zhuo22 分钟前
Git和SVN有什么区别?
前端·javascript·vue.js·git·svn·webpack·node.js
雪球不会消失了27 分钟前
SpringMVC中的拦截器
java·开发语言·前端
钝挫力PROGRAMER29 分钟前
#!/bin/bash^M 坏的解释器:没有哪个文件或者目录
开发语言·bash
羊村懒哥35 分钟前
tomcat-安装笔记(包含虚拟主机配置)
java·笔记·tomcat