Java中JSONArray解析报错:JSONObject无法转换为JSONArray
问题原因及解决方法
错误原因
你的代码里,parse.parse(String.valueOf(informationString))解析后返回的是org.json.simple.JSONObject实例,但你强行把它转换成JSONArray,这就触发了ClassCastException——核心问题是你要解析的JSON字符串是对象结构(用{}包裹),而非数组结构(用[]包裹)。
解决办法
先判断解析结果的类型,再做对应处理,别直接强制转换:
// 先获取解析后的通用对象 Object parsedObj = parse.parse(String.valueOf(informationString)); // 判断类型后分别处理 if (parsedObj instanceof JSONArray) { JSONArray dataArray = (JSONArray) parsedObj; // 这里写数组的处理逻辑 } else if (parsedObj instanceof JSONObject) { JSONObject dataObject = (JSONObject) parsedObj; // 这里写对象的处理逻辑 }
额外提示
先确认informationString的JSON格式:
- 如果目标是解析成JSONArray,字符串得是数组格式,比如:
[{"name":"test"},{"age":20}] - 如果是对象格式,比如:
{"name":"test","age":20},就只能解析成JSONObject
内容的提问来源于stack exchange,提问作者Simone
相关产品推荐
相关产品推荐

