JsonObject和Gson详解

参考文件:http://www.cnblogs.com/xwdreamer/archive/2011/12/16/2296904.html
一、JsonObject

1.JAR包简介

要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包:

  1. commons-lang.jar
  2. commons-beanutils.jar
  3. commons-collections.jar
  4. commons-logging.jar 
  5. ezmorph.jar
  6. json-lib-2.4-jdk15.jar
  7. json-lib-2.4-jdk15-javadoc.jar
  8. json-lib-2.4-jdk15-sources.jar

2.JSONObject对象使用

JSON-lib包是一个beans,collections,maps,java arrays 和XML和JSON互相转换的包。在本例中,我们将使用JSONObject类创建JSONObject对象,然后我们打印这些对象的值。为了使用JSONObject对象,我们要引入"net.sf.json"包。为了给对象添加元素,我们要使用put()方法。

[java] view plaincopy
 
  1. public static User getUserFromJson(String json) {  
  2.         User user = new User();  
  3.         try {  
  4.             JSONObject obj = JSONObject.fromObject(json);  
  5.             user.setUserId(obj.getInt(Tables.User.Fields.USERID));  
  6.             user.setAccount(obj.getString(Tables.User.Fields.ACCOUNT));  
  7.             user.setPassword(obj.getString(Tables.User.Fields.PASSWORD));  
  8.             user.setGender(obj.getInt(Tables.User.Fields.GENDER));  
  9.             user.setPermission(obj.getInt(Tables.User.Fields.PERMISSION));  
  10.             user.setName(obj.getString(Tables.User.Fields.NAME));  
  11.             user.setRemark(obj.getString(Tables.User.Fields.REMARK));  
  12.             user.setContact(obj.getString(Tables.User.Fields.CONTACT));  
  13.   
  14.             return user;  
  15.         } catch (Exception ex) {  
  16.             ex.printStackTrace();  
  17.         }  
  18.   
  19.         return null;  
  20.     }  

二、Gson处理Json格式数据

1.Object to json格式

[java] view plaincopy
 
  1. public String getAllVideosByJson() throws Exception {  
  2.         List<Video> videos = service.getAllVideos();  
  3.         StringBuilder sb = new StringBuilder();  
  4.         //Gson gson = new Gson();  
  5.         Gson gson = new Gson();  
  6.         String result = gson.toJson(videos);  
  7.           
  8.         return result;  
  9.     }  

2.json格式的字符串变为Video对象

[java] view plaincopy
 
    1. public static List<Video> getJSONAllVideos_2() throws Exception {  
    2.   
    3.         String path = "http://192.168.2.107:8080/VideoWeb/VideoServlet?format=json&type=get";  
    4.         URL url = new URL(path);  
    5.         HttpURLConnection conn = (HttpURLConnection) url.openConnection();  
    6.         conn.setReadTimeout(5 * 1000);  
    7.         conn.setRequestMethod("GET");  
    8.         InputStream inStream = conn.getInputStream();  
    9.         byte[] data = StreamTool.readInputStream(inStream);  
    10.         String json = new String(data);  
    11.         Type typeList = new TypeToken<ArrayList<Video>>() {  
    12.         }.getType();  
    13.         Gson gson = new Gson();  
    14.         ArrayList<Video> videos = gson.fromJson(json, typeList);  
    15.         return videos;  
    16.     }  
原文地址:https://www.cnblogs.com/kobe8/p/4030436.html