我将从服务器接收一个JSON对象或数组,但我不知道是哪一个。我需要使用JSON,但要做到这一点,我需要知道它是一个对象还是一个数组。
我正在使用Android。
有没有人有好办法做到这一点?
发布于 2012-10-27 21:35:58
我找到了更好的方法来确定:
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()
发布于 2015-06-29 16:48:15
这是我在Android上使用的简单解决方案:
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
}
发布于 2016-01-12 16:16:35
呈现另一种方式:
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
是来自服务器的响应字符串
https://stackoverflow.com/questions/6118708
复制相似问题