IntelliJ Gradle项目中使用JSONArray.fromObject报错如何解决?
问题原因及解决方案
核心问题
你添加的org.json官方库的JSONArray类并没有fromObject这个静态方法,这个方法是其他JSON库(比如阿里的Fastjson)提供的,你混淆了不同JSON库的API。
解决方案
方案1:继续使用org.json库实现需求
如果要坚持用org.json,可以通过以下方式创建/转换JSONArray:
- 从字符串直接初始化:
String jsonStr = "[1,2,3,\"test\"]"; JSONArray jsonArray = new JSONArray(jsonStr); - 从集合类初始化:
List<String> dataList = Arrays.asList("a", "b", "c"); JSONArray jsonArray = new JSONArray(dataList);
方案2:切换到支持fromObject方法的JSON库(如Fastjson)
如果你确实需要fromObject方法,建议替换成阿里的Fastjson库,步骤如下:
- 修改Gradle依赖,替换原有的
org.json依赖:implementation 'com.alibaba:fastjson2:2.0.32' // 可使用最新稳定版本 - 导入正确的包并调用方法:
import com.alibaba.fastjson2.JSONArray; // 使用fromObject转换任意对象为JSONArray List<Integer> numList = Arrays.asList(1,2,3); JSONArray jsonArray = JSONArray.fromObject(numList);
额外提示
- 不同JSON库的API差异极大,使用前务必对应查看目标库的类结构和方法说明,避免跨库混淆API。
- 检查代码中的import语句,确保导入的
JSONArray类和当前依赖的库完全匹配,避免出现导包错误。
内容的提问来源于stack exchange,提问作者ccc
相关产品推荐
相关产品推荐

