温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Android中使用Gson解析JSON数据的两种方法

发布时间:2020-07-14 16:48:08 来源:网络 阅读:291 作者:yanshang1991 栏目:移动开发

方法一:通过获取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(); 
    }

方法二:通过把JSON数据映射成一个对象,使用Gson对象的fromJson()方法获取一个对象数组进行操作: 

创建JSON数据对应的一个POJO对象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对象获取User对象数据进行相应的操作:

    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字符串只包含一个JSON对象,则可以直接使用fromJson获取一个User对象: 

    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问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI