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

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

!!!!

相关推荐
Lyyaoo.30 分钟前
【JAVA基础面经】抽象类/方法与接口
java·开发语言
0xDevNull34 分钟前
Java实现Redis延迟队列:从原理到高可用架构
java·开发语言·后端
糖炒栗子032635 分钟前
Go 语言环境搭建与版本管理指南 (2026)
开发语言·后端·golang
于先生吖38 分钟前
无人共享健身房 Java 后端源码 + 多端对接完整方案
java·开发语言
yaaakaaang42 分钟前
(八)前端,如此简单!---五组结构
前端·javascript
cpp_learners1 小时前
银河麒麟V10+飞腾FT-2000/4处理器+QT源码静态编译5.14.2指南
开发语言·qt
野生技术架构师1 小时前
1000道互联网大厂Java岗面试原题解析(八股原理+场景题)
java·开发语言·面试
qqty12172 小时前
Java进阶学习之路
java·开发语言·学习
EstherNi2 小时前
vue3仿照elementui样式的写法,并进行校验,并且有默认值的设置
javascript·elementui
_李小白2 小时前
【OSG学习笔记】Day 22: StateSet 与 StateAttribute (渲染状态)
笔记·学习