我们大家平时在开发 App 的时候,相信接触最多的就是 JSON 数据了。只要你的 App 有读取网络数据的功能,你就免不了要与 JSON 打交道。比如你做一个新闻 App,你要读取和解析新闻数据,这样才能显示给用户。
那么我们今天就来了解一下 JSON 以及它在 App 中的应用吧。
在前两节我们会介绍 JSON 数据格式,如果您已经对 JSON 比较了解了,那么也可以跳过前两节,继续阅读后面的内容。
什么是 JSON
首先,JSON 的全称叫做 JavaScript Object Notation ,翻译成中文就是 JavaScript 对象表示法,是一种轻量级的数据交互格式。
JSON 数据分为三种形式,对象,数组,值。
对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。
数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。
值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。
下面是一个简单的例子:
{
"firstname": "San",
"lastname" : "Zhang",
"age": 21,
"friends": ["Mark","Li"]
}
上面的数据示例,表示了这样一个结构,首先我们的数据被一对大括号包围,那么我们的数据就是 对象 类型,然后它里面有四个属性,firstname
,lastname
,age
,friends
。 其中前两个属性 firstname
和 lastname
字符串类型,他们的值分别是 San
和 Zhang
。 age
属性代表年龄,所以它的值一个 Number
类型的 21
。
注意一下,字符串
类型和数字
类型的区别,字符串类型的值用一对双引号括了起来,而数值类型不需要双引号。
最后,friends
属性的值是一个数组,用一对中括号包围起来,而数组中的元素,仍然是字符串类型。
以上就是 JSON 的一个基本结构,关于 JSON 更详细的介绍,可以参看 json.org
JSON 数据实例
我们看完了 JSON 的格式之后,那么我们就接着看一下具体的 JSON 数据是怎样的格式呢?
比如这个天气数据接口: http://api.openweathermap.org/data/2.5/weather?q=China,bj&lang=zh_cn
如果我们在浏览器打开这个地址,我们就可以看到类似这样的数据:
{
"coord": {
"lon": 116.4,
"lat": 39.91
},
"weather": [
{
"id": 520,
"main": "Rain",
"description": "阵雨",
"icon": "09d"
},
{
"id": 701,
"main": "M