代码改变世界

JSON的理解

2014-11-15 14:58  奇迹时代  阅读(342)  评论(0编辑  收藏  举报

官方解释:

JSON的全称是”JavaScript Object Notation”,单单从字面上的理解就是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式。

理解:

JSON所谓的基于文本,也就是说它仅仅依靠文本来表示,不像Http协议,什么超文本、又有音频视频等,所以JSON是一种轻量级的数据。

独立于语言:JSON数据是跨平台的,通用的,不是说只可以在JavaScript中解析,它可以在任意支持的语言上解析,如Java、C#等等。

JSON的两种结构:对象和数组

1、JSON对象:以“{”开始,以“}”结束,里面则是一系列的键(key)值(value)对,键和值用“:”分开,每对键值对之间用“,”分开。参考以下语法结构:

{key1:value1,key2:value2,key3:value3...}

其中键(key)是字符串,而值(value)可以是字符串,数值,true,false,null,对象或数组,也就是说某个键(key)的值(value)可以是一个数组,数组里面又是一些JSON对象,这种表示稍微复杂一些,但是参照这些理解可以很容易分辨出来。

2、JSON数组:以”[”开始,”]”结束,如同程序语言一样,例如C#,Button[] btnArray,则BtnArray是一个Button类型的数组,里面就存放Button类型的对象,那么JSON数组也一样,里面存放的也是JSON对象,参考下面语法结构:

[{key1:value1,key2:value2},{key3:value3,key4:value4},{key5:value5,key6:value6},{key7:value7,key8:value8}]

这里就有4个JSON对象,对象与对象之间用“,”分开。

JSON字符串与JSON对象:

JSON字符串,就是要满足JSON格式要求的字符串,例如:String str = "{"StudentID":100,"Name":"Me","Hometown":"China"}";

JSON对象,指符合json格式要求的对象,例如C#中 JObject json = JObject.Parse("{"StudentID":100,"Name":"Me","Hometown":"China"}");

JSON数据的解析:

不同程序语言的解析稍微有点区别,不过大体是一样的,参考下面简单的例子:

C#中:JObject json = JObject.Parse("{"StudentID":100,"Name":"Me","Hometown":"China"}");

          string studentID = (string)json["StudentID"];

Java中: JSONObject json = new JSONObject("{"StudentID":100,"Name":"Me","Hometown":"China"}");

             String studentID = json.getString("StudentID");

假如某个value是一个JSON数组,那么先按照上面的方法获取value值,再把值传递给JSONArray,根据JSONArray下标取得对应的JSON对象即可,

下标与C#、Java数组下标一样,从0开始。

  以上是个人对应JSON的理解,若存在错误,请无私指出,十分感谢!