json解析的常用方式(不使用第三方库)

  • Post author:
  • Post category:其他


解析json数据有很多种方法,可以使用官方提供的JSONObject,也可以使用谷歌的开源库GSON,另外,一些第三方的开源库如Jackson,FastJSON等也非常不错。接下来主要学习前两种解析方式的用法。


JSONObject

json数据:
[{"id":"5", "version":"2.1", "name":"c book"},
 {"id":"6", "version":"3", "name":"java"},
 {"id":"8", "version":"4.0", "name":"android"}]

private void parseJsonWithJSONObject(String jsonData){
        try {
            JSONArray jsonArray = new JSONArray(jsonData);
            for (int i = 0; i < jsonArray.length(); i++){
                JSONObject jsonObject = jsonArray.getJSONObject(i);
                String id = jsonObject.getString("id");
                String name = jsonObject.getString("name");
                String version = jsonObject.getString("version");
                Log.d("jsonInfo", "id:" + id + ", name:" + name + ", version:" + version);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }


GSON


添加gson库:

compile 'com.google.code.gson:gson:2.7'


JSON格式数据:

{"name" : "Tom", "age" : 20}

定义一个Person类,并加入name和age两个字段,然后通过以下方式将JSON数据解析成一个Person对象:

Gson gson = new Gson();
Person person = gson.fromJson(jsonData, Person.class);

如果是一段JSON数组,可以借助TypeToken将其解析成一个Person集合:

List<Person> persons = gson.fromJson(jsonData, new TypeToken<List<Person>>(){}.getType());



版权声明:本文为hanmindi原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。