JSON是什么
JSON 是一种存储和交换数据的语法。
JSON本质就是字符串,JSON数据 是用在 语言 里面使用的。( 语言有java,c#,js )
JSON对象的意思就是一组键值对的数据对象,在Jav**ript里面就是Jav**ript的对象,在c#(控制器就叫c#写法),java里面就是java的json对象(类/VO),不止Jav**ript里面有JSON,c#控制器也会用JSON。
JSON 是用于存储和传输数据的格式。
JSON 通常用于服务端向网页传递数据 。
JSON 指的是 Jav**ript 对象表示法(Jav**ript Object Notation)
JSON 是轻量级的文本数据交换格式
JSON 独立于语言:JSON 使用 Jav**ript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON
JSON 具有自我描述性,更易理解
JSON的诞生
JSON是 (Jav**ript Object Notation, JS 对象标记),它是一种数据交换格式。在JSON出现之前,大家一直用XML来传递数据。
因为XML是一种纯文本格式,所以它适合在网络上交换数据。XML本身不算复杂,但是,加上DTD、XSD、XPath、XSLT等一大堆复杂的规范以后,任何正常的软件开发人员碰到XML都会感觉头大了,最后大家发现,即使你努力钻研几个月,也未必搞得清楚XML的规范。
终于,在2002年的一天,道格拉斯·克罗克福特(Dougl**rockford)同学为了拯救深陷水深火热同时又被某几个巨型软件企业长期愚弄的软件工程师,发明了JSON这种超轻量级的数据交换格式。
由于JSON非常简单,很快就风靡Web世界,并且成为ECMA标准。几乎所有编程语言都有解析JSON的库,而在Jav**ript中,我们可以直接使用JSON,因为Jav**ript内置了JSON的解析。
把任何Jav**ript对象变成JSON,就是把这个对象序列化成一个JSON格式的字符串,这样才能够通过网络传递给其他计算机。
如果我们收到一个JSON格式的字符串,只需要把它反序列化成一个Jav**ript对象,就可以在Jav**ript中直接使用这个对象了。
形象来说:这是个JSON,存储的数据描述了一个人John Smith的一些个人信息,比如姓名,是否活着,年龄,地址以及电话号码等信息。
其中,地址address和电话号码phoneNumbers呢,下面又包含了州、城市、街道,家庭电话、办公电话以及手机号码等信息。
file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wpsAA91.tmp.jpg
如果之前只接触过存储在Excel或者sql server等结构化数据库中的结构化数据,那么第一次看到JSON格式的数据,一定觉得很新颖。先感性认识一下它,稍后来操作它。
这种数据组织方式,条理清晰,能更好的表示自然界中人或物等实体的属性关系。可以理解为一种树状结构,一棵有枝干,枝干上有叶子的树。
file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wpsAA92.tmp.jpg
操作JSON
打开Ipython,将以下代码敲进去,接下来的操作也是用此变量的值作为例子。
file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wpsAAA2.tmp.jpg
你看了一眼,会说这我认识,不就是个字典吗?在Ipython中使用type()获得js变量的数据类型。
file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wpsAAA3.tmp.jpg
你说的没错儿,就是个dict类型。
(1)写入json文件 file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wpsAAA4.tmp.jpg
(2) 读出json文件 file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wpsAAA5.tmp.jpg
读出的东西保存一下,看看是个什么数据类型。 file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wpsAAA6.tmp.jpg
可以看到我们写入json文件的是一个dict类型,读出后还是一个dict类型。
这也就是json区别于csv文件的地方吧。csv文件呢,无论你写入的是什么类型的数据结构,读出的始终都是一串串字符。
json文件呢,本质存储的也是字符串,区别于csv的是,通过json.load读出json,可以自动解析出数据的类型。
(3)区分json.dump()与json.dumps()
json.dump() file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wpsAAA7.tmp.jpg
使用时,需要指定需要写入的数据,以及一个写入流。如下代码实现的功能是把js的内容写入到桌面的一个test.json的文档中。
执行代码后可以看到桌面上多了一个test.json文件。
json.dumps()
file:///C:/Users/SPOTO/AppData/Local/Temp/ksohtml/wpsAAA8.tmp.jpg
使用的方法比较简单,直接把需要写入的dict传递给这个函数。
文章来源:部分内容综合自网络,因觉优质,特此分享。 进入全国网络工程师交流群 ,请扫描下方二维码↓↓↓ 群里有行业大咖、实战分享、技术交流、技术咨询、企业内推等机会
若群满,请添加老杨微信(spotoa),邀你进群
|