溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Android中使用Gson解析JSON數(shù)據(jù)的兩種方法

發(fā)布時(shí)間:2020-07-14 16:48:08 來(lái)源:網(wǎng)絡(luò) 閱讀:291 作者:yanshang1991 欄目:移動(dòng)開(kāi)發(fā)

方法一:通過(guò)獲取JsonReader對(duì)象解析JSON數(shù)據(jù): 

    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(); 
    }

方法二:通過(guò)把JSON數(shù)據(jù)映射成一個(gè)對(duì)象,使用Gson對(duì)象的fromJson()方法獲取一個(gè)對(duì)象數(shù)組進(jìn)行操作: 

創(chuàng)建JSON數(shù)據(jù)對(duì)應(yīng)的一個(gè)POJO對(duì)象User.java:

public class User { 
    private String username ; 
    private int userId ; 
    public String getUsername() { 
        return username; 
    } 
    public void setUsername(String username) { 
        this.username = username; 
    } 
    public int getUserId() { 
        return userId; 
    } 
    public void setUserId(int userId) { 
        this.userId = userId; 
    } 
}

使用Gson對(duì)象獲取User對(duì)象數(shù)據(jù)進(jìn)行相應(yīng)的操作:

    ype 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()); 
    }

如果要處理的JSON字符串只包含一個(gè)JSON對(duì)象,則可以直接使用fromJson獲取一個(gè)User對(duì)象: 

    tring 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());


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI