json解析-Gson

     一、 谷歌GSON这个Java类库可以把Java对象转换成JSON,也可以把JSON字符串转换成一个相等的Java对象。Gson支持任意复杂Java对象包括没有源代码的对象。

     二、Gson解析Json步骤

     A、服务器端将数据转换成json字符串

       首先、服务器端项目要导入Gson的jar包到BuiltPath中。(

    Gson的jar:http://code.google.com/p/google-gson/   我们还可以下载gson的帮助文档)

    json解析-Gson_第1张图片

    先写一个person对象

    [java]  view plain copy
    1. public class Person {  
    2.     private int id;  
    3.     private String name;  
    4.     private String address;  
    5.     public Person() {  
    6.         // TODO Auto-generated constructor stub  
    7.     }  
    8.     public int getId() {  
    9.         return id;  
    10.     }  
    11.     public void setId(int id) {  
    12.         this.id = id;  
    13.     }  
    14.     public String getName() {  
    15.         return name;  
    16.     }  
    17.     public void setName(String name) {  
    18.         this.name = name;  
    19.     }  
    20.     public String getAddress() {  
    21.         return address;  
    22.     }  
    23.     public void setAddress(String address) {  
    24.         this.address = address;  
    25.     }  
    26.     @Override  
    27.     public String toString() {  
    28.         return "Person [id=" + id + ", name=" + name + ", address=" + address  
    29.                 + "]";  
    30.     }  
    31.     public Person(int id, String name, String address) {  
    32.         super();  
    33.         this.id = id;  
    34.         this.name = name;  
    35.         this.address = address;  
    36.     }  
    37.   
    38. }  
    [java]  view plain copy
    1. public class PersonService {  
    2.     //一个person对象  
    3.     public Person getPerson(){  
    4.         Person person=new Person(1001,"hang","suqian");  
    5.         return person;  
    6.     }  
    7.     //一组person对象
    8.     public List<Person> getlistPerson(){  
    9.         List<Person> list=new ArrayList<Person>();  
    10.         Person person1=new Person(1001,"zhang","suqian");  
    11.         Person person2=new Person(2002,"hang","yangzhou");  
    12.         list.add(person1);  
    13.         list.add(person2);  
    14.           
    15.         return list;  
    16.           
    17.     }  
    18.     //字符串数组
    19.     public List<String> getlistString(){  
    20.         List<String> list=new ArrayList<String>();  
    21.         list.add("beijing");  
    22.         list.add("suqian");  
    23.         return list;  
    24.     }  
    25.     //Map对象
    26.     public List<Map<String,Object>> getlistMap(){  
    27.         List<Map<String,Object>> list=new ArrayList<Map<String,Object>>();  
    28.         Map<String,Object> map1=new HashMap<String, Object>();  
    29.         map1.put("id"1001);  
    30.         map1.put("name","zhang");  
    31.         map1.put("address""beijing");  
    32.         Map<String,Object> map2=new HashMap<String, Object>();  
    33.         map2.put("id"1002);  
    34.         map2.put("name","hang");  
    35.         map2.put("address""shanghai");  
    36.         list.add(map1);  
    37.         list.add(map2);  
    38.         return list;  
    39.     }  
    40.   
    41. }  

    android客户端解析

    [java]  view plain copy
    1. package com.example.andorid_json;  
    2.   
    3. import java.util.ArrayList;  
    4. import java.util.List;  
    5. import java.util.Map;  
    6.   
    7. import com.google.gson.Gson;  
    8. import com.google.gson.reflect.TypeToken;  
    9.   
    10. import android.widget.EditText;  
    11.   
    12. public class GsonTools {  
    13.   
    14.     public static <T> T getPerson(String jsonString, Class<T> cls) {  
    15.         T t = null;  
    16.         try {  
    17.             Gson gson = new Gson();  
    18.             t = gson.fromJson(jsonString, cls);  
    19.   
    20.         } catch (Exception e) {  
    21.             e.printStackTrace();  
    22.         }  
    23.         return t;  
    24.     }  
    25.   
    26.     public static <T> List<T> getPersons(String jsonString, Class<T> cls) {  
    27.         List<T> list = new ArrayList<T>();  
    28.         try {  
    29.             Gson gson = new Gson();  
    30.             list = gson.fromJson(jsonString, new TypeToken<List<T>>() {  
    31.             }.getType());  
    32.   
    33.         } catch (Exception e) {  
    34.             e.printStackTrace();  
    35.         }  
    36.         return list;  
    37.     }  
    38.   
    39.     public static List<String> getList(String jsonString) {  
    40.         List<String> list = new ArrayList<String>();  
    41.         try {  
    42.             Gson gson = new Gson();  
    43.             list = gson.fromJson(jsonString, new TypeToken<List<String>>() {  
    44.             }.getType());  
    45.         } catch (Exception e) {  
    46.             // TODO: handle exception  
    47.         }  
    48.         return list;  
    49.   
    50.     }  
    51.     public static List<Map<String,Object>> listKeyMap(String jsonString){  
    52.         List<Map<String,Object>> list=new ArrayList<Map<String,Object>>();  
    53.         try {  
    54.             Gson gson = new Gson();  
    55.             list = gson.fromJson(jsonString, new TypeToken<List<Map<String,Object>>>() {  
    56.             }.getType());  
    57.         } catch (Exception e) {  
    58.             // TODO: handle exception  
    59.         }  
    60.         return list;  
    61.     }  
    62.       
    63.       
    64. }  


你可能感兴趣的:(json解析-Gson)