簡體   English   中英

如何在Java中檢查JSON對象是否為空?

[英]How to check if JSON object is empty in Java?

在Java中,如果我使用以下JSON字符串作為示例,我將如何檢查對象是否為空/ null

{"null_object_1" : [], "null_object_2" : [null] }

我嘗試過使用:

if(!jsonSource.isNull("null_object_1"))  {/*null_object_1 is not empty/null*/}
if(!jsonSource.isNull("null_object_2"))  {/*null_object_2 is not empty/null*/}

但是這些IF語句仍然返回true(就好像它們不是空/ null)。

有沒有人有辦法解決嗎?

編輯:通過“對象”,我實際上是指數array

無論是那些有兩件事是null ; 他們是陣列。 結果正是您所期望的。

其中一個數組為空,另一個數組包含一個null元素。

如果您想知道數組是否為空,則需要獲取數組,然后檢查其長度。

JSONObject myJsonObject = 
    new JSONObject("{\"null_object_1\":[],\"null_object_2\":[null]}");

if (myJsonObject.getJSONArray("null_object_1").length() == 0) {
    ... 
}

編輯澄清:沒有元素(空)的數組和一個元素為null的數組是完全不同的東西 在第二個數組的情況下,它既不是null也不是空的。 正如我所提到的,它是一個具有null的單個元素的數組。 如果你有興趣確定是否是這種情況,你需要獲取數組然后迭代它測試每個元素以查看它是否為null並相應地對結果起作用。

根據此文檔JSONObject APIisNull檢查值NULL,在您的情況下不是這樣。

如果'null_object_1'的值是String,則需要使用String temp = getString("keyName")並檢查

!("".equals(temp));

如何檢查助焊劑<object>是空的還是不空的?<div id="text_translate"><p> 我有一個api供kube.netes調用檢測服務是否可用。在api中,先調用一個接口獲取其他服務的host,接口返回一個Flux,如果結果為空api返回SERVICE_UNAVAILABLE其他返回ok .我目前的代碼如下:</p><pre class="lang-java prettyprint-override"> @GetMapping(value = "/gateway/readiness") public Mono<Long> readiness(ServerHttpResponse response) { Flux<Map<String, List<String>>> hosts = hostProvider.getHosts(); List<String> hostProviders = new ArrayList<>(); // the below code has a warning: Calling subscribe in a non-blocking scope hosts.subscribe(new Consumer<Map<String, List<String>>>() { @Override public void accept(Map<String, List<String>> stringListMap) { hostProviders.addAll(stringListMap.keySet()); } }); if (hostProviders.isEmpty()) { response.setStatusCode(HttpStatus.SERVICE_UNAVAILABLE); } return routeLocator.getRoutes().count(); }</pre><p> 有優雅做到這一點?</p></div></object>

[英]How to check Flux<Object> is empty or not?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

相關問題 如何在Java中創建json對象之前檢查空數組字符串? 如何在 JAVA 中檢查 Object 的變量是否為空或 NULL 的變量? 如何在 Java 中測試 JSON Collection 對象是否為空 在java中檢查JSON對象 java if 語句檢查 object 是否為空 Java齊射空JSON對象 如何使用ObjectMapper從空JSON文件反序列化為Java Object 如何檢查 json 中的空元素 如何檢查助焊劑<object>是空的還是不空的?<div id="text_translate"><p> 我有一個api供kube.netes調用檢測服務是否可用。在api中,先調用一個接口獲取其他服務的host,接口返回一個Flux,如果結果為空api返回SERVICE_UNAVAILABLE其他返回ok .我目前的代碼如下:</p><pre class="lang-java prettyprint-override"> @GetMapping(value = "/gateway/readiness") public Mono<Long> readiness(ServerHttpResponse response) { Flux<Map<String, List<String>>> hosts = hostProvider.getHosts(); List<String> hostProviders = new ArrayList<>(); // the below code has a warning: Calling subscribe in a non-blocking scope hosts.subscribe(new Consumer<Map<String, List<String>>>() { @Override public void accept(Map<String, List<String>> stringListMap) { hostProviders.addAll(stringListMap.keySet()); } }); if (hostProviders.isEmpty()) { response.setStatusCode(HttpStatus.SERVICE_UNAVAILABLE); } return routeLocator.getRoutes().count(); }</pre><p> 有優雅做到這一點?</p></div></object> 檢查 Java 對象是否為 Collection、Array 或 String 且為空
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM