我的資料庫中有一個類似的物件,現在我的要求是找到特定欄位的值,例如名稱,如果存在則回傳 true,
{
"_id" : "123",
"name" : "Team"
}
但在某些情況下,欄位名稱本身不存在。示例可以是這樣的:
{
"id":1234
}
在這種情況下,我需要回傳 false。
如何驗證特定物件中是否存在名稱欄位?
我試圖使用類似這樣的 StringUtils 方法
StringUtils.isBlank(obj.getName);
但它拋出它拋出 java.lang.NullPointerException 。
uj5u.com熱心網友回復:
您可以使用 Json 架構驗證器。如果您的 json 將采用特定格式。請看看杰克遜圖書館。
uj5u.com熱心網友回復:
JSONObject 類有一個名為“has”的方法。試試這個方法
if (json.has("name")) {
String status = json.getString("name"));
}
這將作業
uj5u.com熱心網友回復:
您可以使用GsonJava 庫將 Java 物件序列化和反序列化為 JSON(如下所示)。
Gson gson = new Gson();
JsonObject jsonObject = gson.fromJson(object, JsonObject.class);
然后,您可以使用 , 中的has方法JsonObject來檢查其中是否key存在 。
jsonObject.has(key)
例子:
下面是一種檢查給key定的 json 字串中是否存在給定的方法,并獲取它的值。
(代替String,您也可以使用您的物件。在這里,我將 jsonStr 視為一個String物件,以便更好地理解。)
private String getValueFromJsonForGivenKey(String key, String jsonStr) {
Gson gson = new Gson();
JsonObject jsonObject = gson.fromJson(jsonStr, JsonObject.class);
if (jsonObject.has(key)) {
// The given JSON string has the given key
String value = jsonObject.get(key).getAsString();
return value;
}
return null;
}
對于 keyid和 jsonStr { "id": "1234" },我們得到1234.
對于 keyname和 jsonStr { "id": "1234" },我們得到null.
uj5u.com熱心網友回復:
您可以做的是使用 JSONObject 的 opt 方法,例如。
JSONObject jsonObject = new JSONObject(myJSONString);
String name = jsonObject.optString("name");
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/339650.html
上一篇:得到一個例外org.springframework.http.converter.HttpMessageNotWritableException
