就讲讲JSON吧

大家好,我是IT修真院深圳分院的学员,一枚正直善良的JAVA程序员。

今天给大家带来的是关于JSON的分享。

1.背景介绍

JSON是由道格拉斯·克罗克福特在2001年开始推广使用的数据格式,在2005年-2006年正式成为主流的数据格式,雅虎和谷歌就在那时候开始广泛地使用JSON格式。在这之前当时通用的数据交换语言是XML,但是道格拉斯·克罗克福特认为XML的生成和解析都过于麻烦,所以他提出一种更加简化的格式,就是我们现在使用的JSON。

JSON(JavaScript Object Notation, JS对象表示法) 是一种轻量级的数据交换格式。它基于 ECMAScript(w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式,但是也使用了类似于C语言家族的习惯来存储和表示数据。简洁和清晰的层次结构易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。这些特性使JSON成为理想的数据交换格式。


2.知识剖析

在 JS 语言中,一切都是对象。因此,任何程序支持的类型都可以通过JSON 来表示,例如字符串、数字、对象、数组等。但是对象和数组是比较特殊且常用的两种类型:

对象表示为键值对

数据由逗号分隔

花括号保存对象

方括号保存数组

JSON 键/值对

JSON 键值对是用来保存 JS 对象的一种方式,

和 JS 对象的写法也大同小异,

键/值对组合中的键名写在前面并用双引号 "" 包裹,

使用冒号 : 分隔,然后紧接着值:

{"firstName": "Json"}

这很容易理解,等价于这条 JavaScript 语句:

{firstName : "Json"}


3.常见问题

1.JSON 与 JS 对象的关系?

2.JSON在javaweb中的运用

4.解决方案

JSON 与 JS 对象的关系?

很多人搞不清楚 JSON 和 Js 对象的关系,

甚至连谁是谁都不清楚。其实,可以这么理解:

JSON 是 JS 对象的字符串表示法,

它使用文本表示一个 JS 对象的信息,本质是一个字符串。

它和xml一样都是一种数据交换格式

var obj = {a: 'Hello', b: 'World'};

//这是一个对象,注意键名也是可以使用引号包裹的

var json = '{"a": "Hello","b": "World"}';

//这是一个 JSON 字符串,本质是一个字符串

JSON 和 JS 对象如何相互转换

要实现从对象转换为 JSON 字符串,使用JSON.stringify() 方法:

var json = JSON.stringify({a: 'Hello', b: 'World'});

//结果是'{"a": "Hello", "b":"World"}'

要实现从 JSON 转换为对象,使用 JSON.parse() 方法:

var obj = JSON.parse('{"a":"Hello", "b": "World"}');

//结果是{a: 'Hello', b: 'World'}


5.编码实战

让我们来看看这个例子的代码。

6.扩展思考


7.参考文献

链接:https://baike.baidu.com/item/JSON/2462549?fr=aladdin

作者:百度百科

链接:http://www.runoob.com/json/json-intro.html

作者:菜鸟教程

8.更多讨论

1. 打了@ResponseBody 标签之后,所有类型return都会变成json对象传输给前端吗?

如果单纯只添加@ResponseBody的话,会自动转化成JSON数据,如果在对应的类上添加下面的类和注解的话,还可以转化成XML格式。下图可以看到一个对比结果。

importjavax.xml.bind.annotation.XmlRootElement;

@XmlRootElement


就讲讲JSON吧_第1张图片

2. @ResponseBody 能直接返回基本数据类型给前端吗?

@ResponseBody返回的数据类型,基本上都是JSON数据类型,也就是JS对象的形式。需要经过转换才能使用。如果传递的是字符串的话,前端接收的就是字符串。

3.javaweb中,XML与JSON的优劣

https://www.cnblogs.com/SanMaoSpace/p/3139186.html

这位博主讲的比较详细深入,大家可以去看看。

PPT链接:戳这里看PPT

腾讯视频:腾讯视频

技能树.IT修真院

“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧

直接点击此链接:http://www.jnshu.com/login/1/19919173

你可能感兴趣的:(就讲讲JSON吧)