确定JSON是JSONObject还是JSONArray

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


我正在使用Android。


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


海绵宝宝撒
浏览 1001回答 3
3回答

千巷猫影

您可以通过以下几种方法执行此操作:您可以在String的第一个位置检查字符(修剪掉空格后,因为有效JSON允许使用该字符)。如果是a {,则表示正在处理a JSONObject,如果是a [,则表示正在处理JSONArray。如果您正在处理JSON(一个Object),则可以进行instanceof检查。 yourObject instanceof JSONObject。如果yourObject是JSONObject,则返回true。JSONArray也是如此。

回首忆惘然

这是我在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}
打开App,查看更多内容
随时随地看视频慕课网APP