来自URL的Java Parse JSON:线程中的异常" main" java.lang.ClassCastException:org.json.JSONArray无法强制转换为org.json.simple.JSONArray

时间:2017-08-25 02:32:39

标签: java json

我正在尝试使用Java从URL中解析json数据(如agency.json中所示)(如ReadJSON.java中所示),但是我收到错误:

线程中的异常" main" java.lang.ClassCastException:org.json.JSONArray无法强制转换为org.json.simple.JSONArray     在com.demo.json.ReadJSON.main(ReadJSON.java:43)

我的尝试如下所示:

agency.json:

honor8zo

ReadJSON.java:

{

    "agency": [
      {
        "agency_id": "11111",
        "agency_name": "UP"
      },
      {
        "agency_id": "22222",
        "agency_name": "UPTK"
      },
      {
        "agency_id": "33333",
        "agency_name": "UAD"
      },
      {
        "agency_id": "44444",
        "agency_name": "Testing Agency"
      },
      {
        "agency_id": "55555",
        "agency_name": "Agency's name with quote"
      }
    ]

}

我试图在stackoverflow论坛中搜索解决方案,但主要是从文件解析。请指导我如何解决异常。提前谢谢。

2 个答案:

答案 0 :(得分:1)

将导入从import org.json.simple.JSONArray;更改为import org.json.JSONArray;

答案 1 :(得分:0)

检查源文件顶部的import语句。

你可能有一句话:

import org.json.JSONArray; 它应该是:

import org.json.simple.JSONArray; 如果您在eclipse或任何其他智能IDE中工作,当您开始键入以JSONArray开头的行时,可能会发生此问题。此时,IDE将向您显示导入类JSONArray的不同可能性。你在org.json.JSONArray中有一个,在org.json.simple.JSONArray中有一个。后者是正确的,但您选择第一个,并且您的IDE会自动在源java文件的顶部添加一个导入行。

从异常问题非常明显,该异常告诉您无法将obj对象强制转换为org.json.JSONArray对象,因为它实际上是一个org.json.simple.JSONArray对象。 (请注意,两者之间存在差异。)