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

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

!!!!

相关推荐
专注VB编程开发20年1 小时前
写.NET可以指定运行SUB MAIN吗?调用任意一个里面的类时,如何先执行某段初始化代码?
开发语言·vb.net
仙人掌_lz2 小时前
利用python从零实现Byte Pair Encoding(BPE):NLP 中的“变形金刚”
开发语言·python·gpt·自然语言处理·llm·token·deepseek
q567315232 小时前
使用Alamofire下载网站首页内容
开发语言·爬虫·python·scrapy·golang
Aerkui3 小时前
Python标准库-copy
开发语言·python
刚入门的大一新生3 小时前
C++初阶-C++的讲解1
开发语言·c++
Swift社区4 小时前
从表格到序列:Swift 如何优雅地解 LeetCode 251 展开二维向量
开发语言·leetcode·swift
hweiyu004 小时前
Python从入门到精通全套视频教程免费
开发语言·python
mycm03045 小时前
新闻发稿软文发布投稿选择媒体时几大注意
经验分享·媒体
Better Rose5 小时前
蓝桥杯备赛学习笔记:高频考点与真题预测(C++/Java/python版)
笔记·学习·蓝桥杯
不想上班只想要钱5 小时前
vue面试题
前端·javascript·vue.js