美文网首页
JSONObject 和 JsonObject

JSONObject 和 JsonObject

作者: EvanZch | 来源:发表于2018-11-23 17:47 被阅读32次

    总结,方便后续查阅

    1、区别:

    1、JSONObjectAndroid原生的json类,通过import org.json.JSONObject来导入。

    2、JsonObject 需要引入如下库文件,通过com.google.gson.JsonObject来导入。

    implementation 'com.google.code.gson:gson:2.8.5'
    

    2、使用

    通常Gson配合javaBean一起使用,相互转换非常方便,这个以后有时间再总结单独Gson的一些使用,今天总结刚刚使用中遇到的问题。

    开发的时候,有时候服务器端返回的结果乱七八糟,没有办法配合javaBean使用的时候,如下可能需要单独提取字段 success 状态来分别做处理,下面总结 JSONObjectJsonObject 分别查询单个字段方法。

    {"product_key":"xxxxxx","success":true,"product_secret":"xxxxxxxx"}
    
    {"success":false,"message":"error_params"}   
    
    • JSONObject
    try {
        boolean success = JSONObject.getBoolean("success");
        if (success){
            // do sth
        }else{
            String message = JSONObject.getString("message");
        }
    } catch (JSONException e) {
        e.printStackTrace();
    }
    

    JSONObject 获取时,如果返回数据中没有获取字段数据,就会返回 JSONException 异常

    • JsonObject
    boolean success = jsonObject.get("success").getAsBoolean();
    if (success) {
        // do sth
    } else {
        String message = jsonObject.get("message").getAsString();
    }
    

    如果返回数据没有 success字段时,会报错:

    java.lang.NullPointerException: Attempt to invoke virtual method 'boolean com.google.gson.JsonElement.getAsBoolean()' on a null object reference
    

    相关文章

      网友评论

          本文标题:JSONObject 和 JsonObject

          本文链接:https://www.haomeiwen.com/subject/dpfsqqtx.html