首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >判断JSON是JSONObject还是JSONArray

判断JSON是JSONObject还是JSONArray
EN

Stack Overflow用户
提问于 2011-05-25 09:48:26
回答 8查看 92.8K关注 0票数 136

我将从服务器接收一个JSON对象或数组,但我不知道是哪一个。我需要使用JSON,但要做到这一点,我需要知道它是一个对象还是一个数组。

我正在使用Android。

有没有人有好办法做到这一点?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2012-10-27 21:35:58

我找到了更好的方法来确定:

代码语言:javascript
复制
String data = "{ ... }";
Object json = new JSONTokener(data).nextValue();
if (json instanceof JSONObject)
  //you have an object
else if (json instanceof JSONArray)
  //you have an array

记号赋予器能够返回更多类型:http://developer.android.com/reference/org/json/JSONTokener.html#nextValue()

票数 256
EN

Stack Overflow用户

发布于 2015-06-29 16:48:15

这是我在Android上使用的简单解决方案:

代码语言:javascript
复制
JSONObject json = new JSONObject(jsonString);

if (json.has("data")) {

    JSONObject dataObject = json.optJSONObject("data");

    if (dataObject != null) {

        //Do things with object.

    } else {

        JSONArray array = json.optJSONArray("data");

        //Do things with array
    }
} else {
    // Do nothing or throw exception if "data" is a mandatory field
}
票数 14
EN

Stack Overflow用户

发布于 2016-01-12 16:16:35

呈现另一种方式:

代码语言:javascript
复制
if(server_response.trim().charAt(0) == '[') {
    Log.e("Response is : " , "JSONArray");
} else if(server_response.trim().charAt(0) == '{') {
    Log.e("Response is : " , "JSONObject");
}

这里的server_response是来自服务器的响应字符串

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6118708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档