我如何 return 除了 JSONObject 中的 "null" 之外的所有值?
How can I return all the values except for a "null" one in a JSONObject?
让我提供一些背景信息:
我有一个 org.json JSON 对象,它具有这个 JSON 对象的所有值,取自 API.
"socialMedias" : {
"TWITTER" : "[twitter url]",
"YOUTUBE" : "[youtube url]",
"INSTAGRAM" : "[instagram url]",
"FACEBOOK" : null,
"VIMEO" : "[vimeo url]",
"LINKEDIN" : "[linkedin url]"
}
然而,尽管在对 API 的这些调用之一中,只有一个值为 null,但相同的值并不总是 null,并且可以有更多比一个空值;让我说明一下我的意思:
"socialMedias" : {
"TWITTER" : "[twitter url]",
"YOUTUBE" : null,
"INSTAGRAM" : null,
"FACEBOOK" : "[facebook url]",
"VIMEO" : "[vimeo url]",
"LINKEDIN" : "[linkedin url]"
}
以上是 API 可以 return 的内容。另一个:
"socialMedias" : {
"TWITTER" : null,
"YOUTUBE" : null,
"INSTAGRAM" : null,
"FACEBOOK" : null,
"VIMEO" : null,
"LINKEDIN" : null
}
从字面上看,JSON对象中的每个值都可以为空!
回到问题:
我如何能够检查 JSONObject 的哪些值是空的,并且只有 return 那些不是空的;因此,对于我拥有的第一个代码块,代码将 return TWITTER, YOUTUBE, INSTAGRAM, VIMEO
和 LINKEDIN
URL,并排除 FACEBOOK
,因为那个的值为 null .
此 API return 是用户已链接到其帐户的社交媒体的 JSON 对象,如果用户未添加值,则为 null,如果不清楚。
我在 Java 17 中使用最新版本的 org.json
库执行此操作。在此先感谢您的帮助,非常感谢!
编辑:我猜我只是没有在这个 post 中动脑筋。
我现在意识到我可以循环遍历 socialMedias 对象中的每个值,然后将所有不为空的值添加到列表中...抱歉!
JSONObject socialMedias = new JSONObject(apiResponse).getJSONObject("socialMedias");
JSONArray socialMediaArray = socialMedias.toJSONArray(socialMedias.names());
socialMediaArray.toList().stream().filter(v -> v != null);
让我提供一些背景信息:
我有一个 org.json JSON 对象,它具有这个 JSON 对象的所有值,取自 API.
"socialMedias" : {
"TWITTER" : "[twitter url]",
"YOUTUBE" : "[youtube url]",
"INSTAGRAM" : "[instagram url]",
"FACEBOOK" : null,
"VIMEO" : "[vimeo url]",
"LINKEDIN" : "[linkedin url]"
}
然而,尽管在对 API 的这些调用之一中,只有一个值为 null,但相同的值并不总是 null,并且可以有更多比一个空值;让我说明一下我的意思:
"socialMedias" : {
"TWITTER" : "[twitter url]",
"YOUTUBE" : null,
"INSTAGRAM" : null,
"FACEBOOK" : "[facebook url]",
"VIMEO" : "[vimeo url]",
"LINKEDIN" : "[linkedin url]"
}
以上是 API 可以 return 的内容。另一个:
"socialMedias" : {
"TWITTER" : null,
"YOUTUBE" : null,
"INSTAGRAM" : null,
"FACEBOOK" : null,
"VIMEO" : null,
"LINKEDIN" : null
}
从字面上看,JSON对象中的每个值都可以为空!
回到问题:
我如何能够检查 JSONObject 的哪些值是空的,并且只有 return 那些不是空的;因此,对于我拥有的第一个代码块,代码将 return TWITTER, YOUTUBE, INSTAGRAM, VIMEO
和 LINKEDIN
URL,并排除 FACEBOOK
,因为那个的值为 null .
此 API return 是用户已链接到其帐户的社交媒体的 JSON 对象,如果用户未添加值,则为 null,如果不清楚。
我在 Java 17 中使用最新版本的 org.json
库执行此操作。在此先感谢您的帮助,非常感谢!
编辑:我猜我只是没有在这个 post 中动脑筋。 我现在意识到我可以循环遍历 socialMedias 对象中的每个值,然后将所有不为空的值添加到列表中...抱歉!
JSONObject socialMedias = new JSONObject(apiResponse).getJSONObject("socialMedias");
JSONArray socialMediaArray = socialMedias.toJSONArray(socialMedias.names());
socialMediaArray.toList().stream().filter(v -> v != null);