java - JSON Java 检查元素是 JSONArray 或 JSONObject

标签 java android web-services json

如何检查一个元素是 JSONArray 还是 JSONObject。我写了代码来检查,

if(jsonObject.getJSONObject("Category").getClass().isArray()) {

} else {

}

在这种情况下,如果元素“类别”是 JSONObject,那么它可以正常工作,但如果它包含一个数组,那么它会抛出异常:JSONArray 无法转换为 JSONObject。请帮忙。 谢谢。

最佳答案

是的,这是因为 getJSONObject("category") 会尝试将该 String 转换为 JSONObject,这将引发 JSONException。您应该执行以下操作:

使用以下方法检查该对象是否为 JSONObject:

   JSONObject category=jsonObject.optJSONObject("Category");

如果 category 对象不是 json 对象,则返回 JSONObjectnull。 然后执行以下操作:

   JSONArray categories;
   if(category == null)
        categories=jsonObject.optJSONArray("Category");

这将返回您的 JSONArray 或 null 如果它不是有效的 JSONArray

关于java - JSON Java 检查元素是 JSONArray 或 JSONObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7284663/

相关文章:

java - getRequestDispatcher 如何在同一服务器的不同项目中为 servlet 工作?

java - 如何从 loadContent() 将 html 和 javascript 加载到 webengine 中?

java - 在 Java 中实现类适配器模式

java - 在android中的onCreate方法内部调用onCreate方法

android - Android 2.3 WebView 是否支持 -webkit-column-break-before?

android - 从 Android Management API 中取消注册

java - 验证 PUT 操作的资源

android - Firebase Analytics 不适用于 Instant App 或 Normal App

java - 设置可以处理 SOAP 消息的 Tomcat 服务器

c# - Monotouch 和 WCF : difference of SVCUTIL. EXE 和 SLSVCUTIL.EXE 以及如何避免不受支持的通用 ChannelFactory?