讓我提供一些背景資訊:
我有一個 org.json JSONObject,它包含這個 JSON 物件的所有值,取自 API。
"socialMedias" : {
"TWITTER" : "[twitter url]",
"YOUTUBE" : "[youtube url]",
"INSTAGRAM" : "[instagram url]",
"FACEBOOK" : null,
"VIMEO" : "[vimeo url]",
"LINKEDIN" : "[linkedin url]"
}
然而,問題是,在對 API 的這些呼叫之一中,只有一個值為 null,但相同的值并不總是為 null,而且可能有多個值為 null;讓我來說明我的意思:
"socialMedias" : {
"TWITTER" : "[twitter url]",
"YOUTUBE" : null,
"INSTAGRAM" : null,
"FACEBOOK" : "[facebook url]",
"VIMEO" : "[vimeo url]",
"LINKEDIN" : "[linkedin url]"
}
以上是 API 可以回傳的內容。另一個:
"socialMedias" : {
"TWITTER" : null,
"YOUTUBE" : null,
"INSTAGRAM" : null,
"FACEBOOK" : null,
"VIMEO" : null,
"LINKEDIN" : null
}
JSONObject 中的每個值實際上都可以為 null!
回到問題:我如何能夠檢查 JSONObject 的哪些值為空,并且只回傳非空的值;因此,對于我擁有的第一個代碼塊,代碼將回傳TWITTER, YOUTUBE, INSTAGRAM, VIMEO和LINKEDINURL,并排除FACEBOOK, 一個,因為那個的值為空。
此 API 回傳用戶已鏈接到其帳戶的社交媒體的 JSONObject,如果用戶未添加值(如果不清楚),則為 null。
我使用最新版本的org.json庫在 Java 17 中執行此操作。在此先感謝您的幫助,不勝感激!
uj5u.com熱心網友回復:
JSONObject socialMedias = new JSONObject(apiResponse).getJSONObject("socialMedias");
JSONArray socialMediaArray = socialMedias.toJSONArray(socialMedias.names());
socialMediaArray.toList().stream().filter(v -> v != null);
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/342613.html
標籤:爪哇 json 行家 org.json java-17
