如何确定JSON是JSONObject还是JSONArray?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (52)

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

我正在使用Android。

有没有人有这样做的好方法?

提问于
用户回答回答于

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

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

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

用户回答回答于

有几种方法可以做到这一点:

  1. 你可以在字符串的第一个位置检查字符(修剪完空白之后,因为它允许使用有效的JSON)。如果它是a {,你正在处理a JSONObject,如果它是a [,你正在处理a JSONArray
  2. 如果你正在处理JSON(an Object),那么你可以做一个instanceof检查。 yourObject instanceof JSONObject。如果yourObject是JSONObject,这将返回true。这同样适用于JSONArray。

扫码关注云+社区