JSONObject 和 JsonObject
2018-11-23 本文已影响32人
EvanZch
总结,方便后续查阅
1、区别:
1、JSONObject
是Android
原生的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
状态来分别做处理,下面总结 JSONObject
和 JsonObject
分别查询单个字段方法。
{"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