Android 4.1.3环境下如何将字符串转换为JSONArray?
字符串转JSONArray实现方案
你提到的new JSONArray(String variable)构造方法失效,通常是依赖的JSON库版本变动或引入了其他库的同名JSONArray类导致,可通过以下两种方式解决:
- 方案1:使用内置静态解析方法
当前绝大多数JSON库的JSONArray都提供了专用的静态解析方法,直接调用即可完成转换,示例代码如下:
// 待转换的JSON数组字符串 String targetStr = "[\"https://serverv2.nokhbgan.ir/api/Products/DownloadFileV1?src=NGrvxefUHed_1.png\",\"https://serverv2.nokhbgan.ir/api/Products/DownloadFileV1?src=NGrvxefUHed_2.png\"]"; // 调用parseArray静态方法转换 JSONArray jsonArray = JSONArray.parseArray(targetStr);
如果你使用的是特定分支的org.json库,也可以调用实例的parse方法实现转换:
JSONArray jsonArray = new JSONArray().parse(targetStr);
- 方案2:对齐依赖库的API规范
如果需要沿用原有new JSONArray(String)的写法,检查当前项目引入的JSON依赖:- 确认引入的是官方org.json的稳定版本,该版本始终支持String类型入参的构造方法
- 不要混用不同JSON库的同名类,fastjson、net.sf.json、org.json下的JSONArray接口定义存在明显差异,需确保引入的类和代码预期一致
注意:转换前可先校验字符串的JSON数组格式合法性,避免解析抛出异常
内容的提问来源于stack exchange,提问作者Hooman Hooshyar
相关产品推荐
相关产品推荐

