Gson 数据解析

一:json: JavaScript Object Notation

   json解析object:  Person person = new Person();
JSONObject jsonObject = new JSONObject(jsonString);
JSONObject personObject = jsonObject.getJSONObject(key);
person.setId(personObject.getInt("id"));
person.setName(personObject.getString("name"));
person.setAddress(personObject.getString("address"));
        解析List
       List<Person> list = new ArrayList<Person>();

try {
JSONObject jsonObject = new JSONObject(jsonString);
    JSONArray jsonArray = jsonObject.getJSONArray(key);
         for (int i = 0; i < jsonArray.length(); i++) {
        JSONObject jsonPerson = jsonArray.getJSONObject(i);
        Person person = new Person();
        person.setId(jsonPerson.getInt("id"));
    person.setName(jsonPerson.getString("name"));
    person.setAddress(jsonPerson.getString("address"));
         list.add(person);
二:gson:gson和其他现有java json类库最大的不同时gson需要序列化得实体类不需要使用annotation来标识需要序列化得字段,同时gson又可以通过使用annotation来灵活配置需要序列化的字段。
  Gson gson = new Gson();
List<Person> persons = new ArrayList<Person>();
for (int i = 0; i < 10; i++) {
     Person p = new Person();
     p.setName("name" + i);
     p.setAge(i * 5);
     persons.add(p);
}
String str = gson.toJson(persons);

下面来看看gson的反序列化,Gson提供了fromJson()方法来实现从Json相关对象到java实体的方法
Person person = gson.fromJson(str, Person.class);


List<Person> ps = gson.fromJson(str, new TypeToken<List<Person>>(){}.getType());
for(int i = 0; i < ps.size() ; i++)
{
     Person p = ps.get(i);
     System.out.println(p.toString());
}

你可能感兴趣的:(json)