感觉json在当前的应用还蛮多的,前几天简单用了几次,今天竟然有朋友问我,当我给他回答出来的时候有些好笑也有些满足吧,怕明天再被问到相关的问题啊,就抓紧补下,免得同样不会再出糗,朋友心目中的高大形象啊....
1、json是什么?
全称为:JavaScript Object Notation
功能为:轻量级的数据交换格式
本质为:基于javascript的一个子集
特点为:完全独立于语言的文本格式,却有类似于C语言家族的习惯
2、json的出现背景
21世纪初,Douglas Crockford找寻一种简便的数据交换格式,能够在服务器之间交换数据。
当时的通用数据交换语言是XML
json的出现解决的问题时使交换数据格式大大简化,通常在提及的时候就是其简单性和灵活性(具体简化在哪,对XML还不是很熟悉呢,回头再记录比较吧)
3、json的语法格式
在这个的记录中,与java语言联合起来记忆的效果更好一些
第一:同样可以将数据分为三种类型:标量、序列和映射;所谓标量,就是单个的数据;而序列,则是许多个数据;至于映射,就是有对应项的数据,在json的数据记录中可以联系map集合;
第二:json中“,”可以联系java中句尾的“;”进行记忆;
第三:来看下Douglas Crockford声称已经都规定了,永远不需再升级的规格
a、并列的数据之间用“,”进行分割;
b、映射用“:”来表示;
c、并列数据的集合(数组)用方括号“[ ]”来表示;
d、映射的集合(对象)用大括号“{}”来表示;
图形描述:
(对c中并列数据的集合数组来用“【】”表示,里面数据与数据之间用“,”进行分割)
(映射的集合对象用“{}”来表示,可以将对象放入大括号中,表示不同的对象,映射用“:”来表示,雷同于java中的一条属性,而不同属性之间,也就是不同数据之间用“,”隔开)
(json的值类型)
这里写一个例子来看看:
{"musicians":[ {"firstName":"Eric","lastName":"Clapton","instrument":"guitar"}, {"firstName":"Sergei","lastName":"Rachmaninoff","instrument":"piano"} ]}在这里musicians表示一个对象,好比java中的
public class Musicians(String firstName,String lastName,String instrument){ private String firstName; private String lastName; private String instrument; };