如何转换简单.JSONArray转换为Java中的普通JSONArray



我正在编写一个JAVA程序来读取JSON文件数据并进行一些处理。为了从我的类路径资源文件夹中读取JSON文件数据,我使用了以下代码:

import org.json.simple.JSONArray;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
String filePath = "src/main/resources/SampleRequest.json";
JSONParser parser = new JSONParser();
Object object = parser.parse(new FileReader(filePath));
JSONArray inputjsonArr = (JSONArray) object;

正如我们所看到的,我正在使用import org.json.simple.JSONArray来读取和获取数据。相反,我尝试直接使用普通的JSONArray导入import org.json.JSONArray;,然后得到错误:

Exception in thread "main" java.lang.ClassCastException: org.json.simple.JSONArray cannot be cast to org.json.JSONArray

我想知道是否可以将simple.JSONArray转换为正常的JSONArray。或者,我是否可以使用直接的import org.json.JSONArray;从JSON文件中读取数据,这样我就根本不必处理这种转换了。

org.json.simpleorg.json是不同且不兼容的库。

不建议使用org.json.simple,因为它将其所有值作为Object返回,而org.json允许指定返回什么type

解决方案不是使用org.json.simple.parser.JSONParser(删除所有org.json.simple导入(,而是从相关文件中读取String并将其直接传递给org.json.JSONArray,如下所示:

String json = FileUtils.readFileToString(new File( "src/main/resources/SampleRequest.json"), "UTF-8" );
JSONArray array = new JSONArray(json);

正如你所看到的,为了简单起见,我喜欢使用下面包中的FileUtils,所以添加这个依赖项:

<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.8.0</version>
</dependency>

最新更新