繁体   English   中英

如何解析可以是对象或数组的JSON?

[英]How to parse JSON that can be either an object or an array?

我从服务器返回了一个JSON字符串,它可以是JSONArrayJSONObject ,并且我事先不知道会得到什么(至少在代码的那部分中)。

有办法解决吗? 我的第一个猜测是做这样的事情:

if (jsonString.startsWith("[")) {
   r = new JSONArray(jsonString);
} else {
   r = new JSONObject(jsonString);
}

但这感觉有点“骇人听闻”。

JSONTokener的 instanceof怎么

Object unknownJSON = new JSONTokener(data).nextValue();
if (unknownJSON instanceof JSONObject)
  // well, you know
else if (unknownJSON instanceof JSONArray)
  // you should also know

非常骇人,但您可以尝试

try {
JSONObject object = new JSONObject(jsonString);
// u received a json object
} catch (JSONException e) {
// you received a json array
JSONArray array = new JSONArray(jsonString);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM