Android 中解析 JSON

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

Android 提供类四种不同的类来操作 JSON 数据。这些类是 JSONArray、JSONObject、JSONStringer 和 JSONTokenizer

为了解析 JSON 对象,须先创建一个 JSONObject 类的对象,需要传入需解析的字符串JSONObject root = new JSONObject(candyJson); 然后根据 JSONObject 对象提供方法以及数据类型解析对应 json 数据。下表展示一些 JSONObiect 提供的方法

image.png

示例:

        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();
        }

你可能感兴趣的:(Android 中解析 JSON)