JSONObject 和 JsonObject

2018-11-23  本文已影响32人  EvanZch

总结,方便后续查阅

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"}   
try {
    boolean success = JSONObject.getBoolean("success");
    if (success){
        // do sth
    }else{
        String message = JSONObject.getString("message");
    }
} catch (JSONException e) {
    e.printStackTrace();
}

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

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
上一篇下一篇

猜你喜欢

热点阅读