如何将 simple.JSONArray 转换为 Java 中的普通 JSONArray

How to convert the simple.JSONArray to normal JSONArray in Java

我正在编写一个 JAVA 程序来读取 JSON 文件数据并进行一些处理。 为了从我的 Class 路径资源文件夹中读取 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,因为它 return 的所有值都是 Object,而 org.json 允许指定什么 type 到 return.

解决方案不是使用 org.json.simple.parser.JSONParser(删除所有 org.json.simple 导入)而是从相关文件中读取字符串并将其直接传递给 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>