1. 程式人生 > >JSON 之JAVA 解析

JSON 之JAVA 解析

一、  JSON (JavaScript Object Notation)一種簡單的資料格式,比xml更輕巧。
Json建構於兩種結構:
1、“名稱/值”對的集合(A collection of name/value pairs)。不同的語言中,它被理解為物件(object),紀錄(record),結構(struct),字典(dictionary),雜湊表(hash table),有鍵列表(keyed list),或者關聯陣列 (associative array)。 如: 
{
“name”:”jackson”,
“age”:100
}


2、值的有序列表(An ordered list of values)。在大部分語言中,它被理解為陣列(array)如:

{
“students”:
[
{“name”:”jackson”,“age”:100},
{“name”:”michael”,”age”:51}
]
}
二、java解析JSON步驟
A、伺服器端將資料轉換成json字串
首先、伺服器端專案要匯入json的jar包和json所依賴的jar包至builtPath路徑下(這些可以到JSON-lib官網下載:http://json-lib.sourceforge.net/

JSON <wbr>之JAVA <wbr>解析
然後將資料轉為json字串,核心函式是:
public static String createJsonString(String key, Object value)
{
JSONObject jsonObject = new JSONObject();
      jsonObject.put(key, value);
      return jsonObject.toString();

}
B、客戶端將json字串轉換為相應的javaBean
  1、客戶端獲取json字串因為android專案中已經集成了json的jar包所以這裡無需匯入
public class HttpUtil
{
   
   public static String getJsonContent(String urlStr)
   {
      try
      {// 獲取HttpURLConnection連線物件
         URL url = new URL(urlStr);
         HttpURLConnection httpConn = (HttpURLConnection) url
               .openConnection();
         // 設定連線屬性
         httpConn.setConnectTimeout(3000);
         httpConn.setDoInput(true);
         httpConn.setRequestMethod("GET");
         // 獲取相應碼
         int respCode = httpConn.getResponseCode();
         if (respCode == 200)
         {
            return ConvertStream2Json(httpConn.getInputStream());
         }
      }
      catch (MalformedURLException e)
      {
         // TODO Auto-generated catch block
         e.printStackTrace();
      }
      catch (IOException e)
      {
         // TODO Auto-generated catch block
         e.printStackTrace();
      }
      return "";
   }

   
   private static String ConvertStream2Json(InputStream inputStream)
   {
      String jsonStr = "";