2011-09-08 54 views
21

有沒有簡單的例子來說明在序列化中使用JSON的Android?Android上的JSON - 序列化

謝謝

+1

你有沒有表示該http://blog.brianbuikema.com/2010/04/android-how-to-deserialize-both-xml-and-json/ –

+0

這可能是因爲, 謝謝 – Waypoint

回答

39

我們使用gson這個庫。序列化是調用

new Gson().toJson(obj) 

而解串那樣簡單,

new Gson().fromJson(jsonStr, MyClass.class); 
18

如果你想避免使用Android專案另一個庫剛(反)序列化JSON,你CAU使用下面的代碼我做。

要序列

JSONObject json = new JSONObject(); 
json.put("key", "value"); 
// ... 
// "serialize" 
Bundle bundle = new Bundle(); 
bundle.putString("json", json.toString()); 

和反序列化

Bundle bundle = getBundleFromIntentOrWhaterver(); 
JSONObject json = null; 
try { 
    json = new JSONObject(bundle.getString("json")); 
    String key = json.getString("key"); 
} catch (JSONException e) { 
    e.printStackTrace(); 
} 

的問候,馬丁

-1
protected void onPostExecute(String results) { 
     if (results!=null) { 
      try { 
       Tec tec_m=new Tec(); 

       tec_m=new Gson().fromJson(results, Technician.class); 

       ((AndroidActivity)activity).setData(tec_m); 
      } catch (JSONException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
0

有一個簡單的庫(反)序列化JSON,與Android自己的JSON兼容圖書館。

// deserialize a java bean to json object 
JSONObject studentJson = JsonDeer.toJson(student); 
// serialize a java bean from json object 
Student student1 = JsonDeer.fromJson(studentJson,Student.class); 

library address