解析json数据:使用JsonObject解析json数据 您所在的位置:网站首页 json包含多个对象如何解析出来的 解析json数据:使用JsonObject解析json数据

解析json数据:使用JsonObject解析json数据

2024-03-12 06:15| 来源: 网络整理| 查看: 265

在Android开发中,我们经常需要和服务器进行交互,进而获取到服务器上上的数据。服务器返回的数据一般有两种格式:1、json格式;2、xml格式,今天讲json格式的解析。

解析json数据通常有三种方式:第一种是使用Android中自带的JsonObject对象进行解析,这是一种最基础同时也是最麻烦的解析方式;第二种是使用Gson解析,Gson的效率并不是非常好,但是架不住他好用,所以一般都会使用Gson进行json数据的解析;第三种是fastjson,这是阿里开发的一个json数据解析框架,相比与Gson来说,fastjson的效率有这许多的提高。下面进行使用JsonObject对象进行解析数据。

拿到json数据时,我们可以在百度上搜索json数据在线解析从而非常方便的将获取的数据解析成更直观的数据格式;也可以进入下面网址http://www.bejson.com/json2javapojo/new/ 可以直接将json数据转换成Java bean对象!

1、使用的java bean的模版:

public class Person implements Serializable { private int id; private String name; private int age; public Person(int id, String name, int age) { this.id = id; this.name = name; this.age = age; } public Person() { } 省略了相关的Setter、Getter和toString方法 }

2、只包含一个对象的json字符串:

{"persons":{"age":10,"id":1,"name":"jack"}}

解析方法:

/** * 解析返回Person类 * * @param data 获取到的数据 * @return */ public static Person getPerson(String data) throws JSONException { //将得到json数据转换为一个json对象 JSONObject jsonObject = new JSONObject(data); //获取"persons"的json对象 jsonObject = jsonObject.getJSONObject("persons"); //通过相应的get方法,获取相应的属性 int id = jsonObject.getInt("id"); String name = jsonObject.getString("name"); int age = jsonObject.getInt("age"); //将获取到的数据放到一个Person对象中 Person person = new Person(id, name, age); return person; }

3、含有多个对象的json字符串:

{"persons":[{"age":10,"id":1,"name":"jack"},{"age":11,"id":2,"name":"rose"},{"age":16,"id":3,"name":"tom"}]}

从数据中可以看出,这是一个含有一个数组的json数据,以下是解析方式:

/** * 解析返回多个Person对象 * @param data 传入的json数据 * @return * @throws JSONException */ public static List getPersons(String data) throws JSONException { List list = new ArrayList(); //将得到json数据转换为一个json对象 JSONObject jsonObject = new JSONObject(data); //获取"persons"的json对象,并将其转换为一个json数组 JSONArray array = jsonObject.getJSONArray("persons"); //通过循环获取数据,并放入list集合中 for (int i = 0;i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有