當前位置:首頁 » 安卓系統 » android解析復雜json

android解析復雜json

發布時間: 2025-05-24 14:55:17

Ⅰ android 解析json用那個包裡面的方法比較好呢

android 解析json還有用Google出品的Gson比較好,具體步驟為:
1、首先,從 code.google.com/p/google-gson/downloads/list下載GsonAPI:
google-gson-1.7.1-release.zip 把gson-1.7.jar 到libs(項目根目錄新建一個libs文件夾)中。 可以使用以下兩種方法解析JSON數據,通過獲取JsonReader對象解析JSON數據。
代碼如下:
String jsonData = "[{\"username\":\"arthinking\",\"userId\":001},{\"username\":\"Jason\",\"userId\":002}]";
try{
JsonReader reader = new JsonReader(new StringReader(jsonData));
reader.beginArray();
while(reader.hasNext()){
reader.beginObject();
while(reader.hasNext()){
String tagName = reader.nextName();
if(tagName.equals("username")){
System.out.println(reader.nextString());
}
else if(tagName.equals("userId")){
System.out.println(reader.nextString());
}
}
reader.endObject();
}
reader.endArray();
}
catch(Exception e){
e.printStackTrace();
}
2、使用Gson對象獲取User對象數據進行相應的操作:
代碼如下:

Type listType = new TypeToken<LinkedList<User>>(){}.getType();
Gson gson = new Gson();
LinkedList<User> users = gson.fromJson(jsonData, listType);
for (Iterator iterator = users.iterator(); iterator.hasNext();) {
User user = (User) iterator.next();
System.out.println(user.getUsername());
System.out.println(user.getUserId());
}
3、如果要處理的JSON字元串只包含一個JSON對象,則可以直接使用fromJson獲取一個User對象:
代碼如下:

String jsonData = "{\"username\":\"arthinking\",\"userId\":001}";
Gson gson = new Gson();
User user = gson.fromJson(jsonData, User.class);
System.out.println(user.getUsername());
System.out.println(user.getUserId());

Ⅱ net.sf.json.JSONObject與Android自帶的JSON解析類沖突怎麼辦

在Android中,由於類名相同,可能造成沖突,解決方案:

  1. 盡量使用同一個庫下的JSON解析工具。

  2. 如果類型相同,但是包名不同,建議使用完整的包名+類名定義變數,例如java中,java.sql.Date和java.uitl.Date兩個都是Date類,但是怎麼區分呢,就可以通過包名+類名來區分:

    java.sql.Date date1 = new java.sql.Date();

    java uitl.Date date2 = new java.uitl.Date();

  3. JSONObject也一樣,可以使用這種方式。

  4. Android中,json的解析,建議使用google提供的Gson這個開源庫,json的解析或者對象與json轉換,只需要一行代碼。

    Gson gson = new Gson();

    gson.toJson(object); gson.fromJson(json.Object.class);

熱點內容
戰地5默認是什麼伺服器 發布:2025-09-18 17:59:32 瀏覽:298
安卓變ios系統主題怎麼弄 發布:2025-09-18 17:54:07 瀏覽:876
linux出口ip 發布:2025-09-18 17:51:57 瀏覽:937
androidbitmap使用 發布:2025-09-18 17:49:20 瀏覽:231
數字日期加密 發布:2025-09-18 17:43:46 瀏覽:496
網吧電腦顯示未連接上桌面伺服器 發布:2025-09-18 17:37:17 瀏覽:695
電腦壓縮文件怎麼解壓 發布:2025-09-18 17:27:59 瀏覽:384
資料庫數據類型表 發布:2025-09-18 17:11:56 瀏覽:28
java如何生產執行bat腳本 發布:2025-09-18 16:53:25 瀏覽:559
湖北的伺服器地址是多少 發布:2025-09-18 16:51:09 瀏覽:491