当还是在大学的时候,一心只想好好学习好编程语言,对什么XML解析,JSON解析可谓是一脸茫然,当初听人说用JSON作数据传递的容器,或者说是传递的一种规范,感觉似乎会很麻烦的样子,后来才知道JSON是有多么方便易懂。
初识JSON还是在学习Android开发的时候,那时候要自己练习去编写一个简易的新浪微博客户端,那时候使用的是新浪提供的第三方SDK,调用的都是新浪提供的免费接口,比如获取一个人的微博信息什么的,那时候从服务器上下行的数据全是JSON类型的,这就不得不逼我去学习到底什么玩意儿才是JSON。
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。好吧我承认这一段来自百度,不过至少你知道JSON是怎么来的了。
相比学习过“集合”这个概念的同学对NameValuePair或者是Key - Value一定不陌生了,其实JSON也是种“名值对”数据形式,一个名字一个值,只要你找得到名字,你就能获取它的值,比如说:
"json":"my_json"
于是你预先知道了有一个叫做"json"的键,你就能够获取到"my_json"这个值。
当然在Java中,json对象有多种类型,例如:JSONArray
"arr":["json_0":"my_json","json_1":"your_json"]
这就是一个典型的json数组,从"arr"键中获取这个数组,然后通过"json_0"和"json_1"键获取它们的值。
当然还有JSONObject,这个就不用说明了,它直接就代表一整个JSON对象,你可从里面获取JSONArray和JSONObject,当然前提是你清楚这个JSON的结构。
虽然JSON是键值对的形式,但是这里面的值不简单只是我们所认识的值,当可以是另一个JSON对象,比如数组
JSON结构虽然简单,但是它只需要经过对象、数组2种结构就可以组合成复杂的数据结构了。
所以在清楚结构的情况下,需要传递数据的话,JSON是一种不错的选择。