JSON
JSON( JavaScript Object Notation ) 是一种轻量级的数据交换格式。易于阅读和编写,同时也易于机器解析和生成。
JSON 建构于两种结构:
- “键/值“对的集合。不同语言中,它被理解为对象object、结构struct、字典dictionary、哈希表hash table
- 值的有序列表。大部分语言中,它被理解为数组 array
JSON 具有以下这些格式:
- 对象是一个无序的“‘ 键/值’对”集合。一个对象以
{
左括号开始,}
右括号结束。每个“名称”后跟一个:
冒号,“‘ 键/值’对”之间使用,
逗号分隔 - 数组是值的有序集合。一个数组以
[
左中括号开始,]
右中括号结束。值之间使用,
逗号分隔。 - 值 可以是双引号扩起来的字符串(String),数值(number)、true、false、null、对象(object)或者数组(array).
- 字符串(String)是由
""
双引号包围的任意数量Unicode字符的集合,使用反斜杠转义。
Android 中 解析 JSON
Android 提供类四种不同的类来操作 JSON 数据。这些类是 JSONArray、JSONObject、JSONStringer 和 JSONTokenizer
为了解析 JSON 对象,须先创建一个 JSONObject 类的对象,需要传入需解析的字符串JSONObject root = new JSONObject(candyJson);
然后根据 JSONObject 对象提供方法以及数据类型解析对应 json 数据。下表展示一些 JSONObiect 提供的方法
示例:
String candyJson = "{\"candies\":【{\"name\":\"Jelly Beans\",\"count\":10}】}";
try {
JSONObject root = new JSONObject(candyJson);
JSONArray candiesArray = root.getJSONArray("candies");
JSONObject firstCandy = candiesArray.getJSONObject(0);
// gettXxx()方法如果不存在该值则抛出异常
// optXxx()方法如果不存在则返回空
// String name = firstCandy.getString("name");
String name = firstCandy.optString("name");
// int count = firstCandy.getInt("count");
int count = firstCandy.optInt("count");
} catch (JSONException e) {
e.printStackTrace();
}
网友评论