Android之解析JSON数据示例(android原生态,FastJson,Gson)

下面是“Android之解析JSON数据示例”的完整攻略:

下面是“Android之解析JSON数据示例”的完整攻略:

一、JSON数据格式简介

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于前后端间的数据传输。JSON数据格式本质上是一组键值对(即“属性”和“值”),使用大括号 {} 括起来表示一个对象,每个键值对用逗号 , 隔开,属性名和属性值之间使用冒号 : 隔开。

以下是一个简单的JSON数据示例:

{
    "name": "John",
    "age": 30,
    "isMarried": true,
    "hobbies": ["reading", "running", "swimming"]
}

二、Android原生态JSON解析

Android原生态提供了JsonReader和JsonWriter两个类,可以非常方便地进行JSON数据的读写,以下是一个示例代码:

try (JsonReader reader = new JsonReader(new InputStreamReader(inputStream, "UTF-8"))) {
    reader.beginObject();
    while (reader.hasNext()) {
        String name = reader.nextName();
        if (name.equals("result")) {
            String result = reader.nextString();
            // TODO: 处理result数据
        } else if (name.equals("message")) {
            String message = reader.nextString();
            // TODO: 处理message数据
        } else {
            reader.skipValue();
        }
    }
    reader.endObject();
} catch (IOException e) {
    e.printStackTrace();
}

以上代码使用了Java 7的try-with-resources语法,自动关闭了输入流。首先使用JsonReader的 beginObject() 方法开始解析JSON对象,然后使用 hasNext() 方法判断是否还有键值对可以读取,使用 nextName() 方法获取属性名,再根据属性名判断应该如何解析属性值,使用对应的 nextXxx() 方法获取属性值。

三、使用FastJson解析JSON数据

FastJson是阿里巴巴开源的JSON解析库,提供了比Android原生态更为高效的JSON解析和生成方式。以下是一个示例代码:

String jsonString = "{\n" +
        "    \"name\": \"John\",\n" +
        "    \"age\": 30,\n" +
        "    \"isMarried\": true,\n" +
        "    \"hobbies\": [\n" +
        "        \"reading\",\n" +
        "        \"running\",\n" +
        "        \"swimming\"\n" +
        "    ]\n" +
        "}";
JSONObject jsonObject = JSON.parseObject(jsonString);
String name = jsonObject.getString("name"); // John
int age = jsonObject.getIntValue("age"); // 30
boolean isMarried = jsonObject.getBooleanValue("isMarried"); // true
JSONArray hobbies = jsonObject.getJSONArray("hobbies"); // ["reading","running","swimming"]

以上代码使用了FastJson的 JSON.parseObject() 方法将一个JSON字符串解析为JSONObject对象,然后使用对应的 XxxValue() 方法获取属性值。

四、使用Gson解析JSON数据

Gson是Google开源的JSON解析库,同样提供了高效的JSON解析和生成方式。以下是一个示例代码:

String jsonString = "{\n" +
        "    \"name\": \"John\",\n" +
        "    \"age\": 30,\n" +
        "    \"isMarried\": true,\n" +
        "    \"hobbies\": [\n" +
        "        \"reading\",\n" +
        "        \"running\",\n" +
        "        \"swimming\"\n" +
        "    ]\n" +
        "}";
Gson gson = new Gson();
JsonObject jsonObject = gson.fromJson(jsonString, JsonObject.class);
String name = jsonObject.get("name").getAsString(); // John
int age = jsonObject.get("age").getAsInt(); // 30
boolean isMarried = jsonObject.get("isMarried").getAsBoolean(); // true
JsonArray hobbies = jsonObject.get("hobbies").getAsJsonArray(); // ["reading","running","swimming"]

以上代码使用了Gson的 fromJson() 方法将一个JSON字符串解析为JsonObject对象,然后使用对应的 getXXX() 方法获取属性值。

五、总结

以上是“Android之解析JSON数据示例”的完整攻略,通过本文你应该掌握了Android原生态、FastJson和Gson三种常用的JSON解析方式,能够根据实际需要选择合适的方式进行JSON数据解析。同时也需要注意,JSON数据的内容和格式各不相同,需要根据数据的具体特点进行相应的解析处理。

本文标题为:Android之解析JSON数据示例(android原生态,FastJson,Gson)

基础教程推荐