java - 投射时的java json错误
问题描述
我的 Java 代码如下所示:
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
String jsonMember = strUrl;
String strMember = readUrl(jsonMember);
if (!Validator.isEmpty(strMember)) {
Object obj = parser.parse(strMember);
JSONObject jo = (JSONObject) obj;
JSONArray jsonArrayMember = (JSONArray) jo.get("member");
for (int j = 0; j < jsonArrayMember.size(); j++) {
JSONObject memberObj = (JSONObject) jsonArrayMember.get(j);
String name = memberObj.get("name").toString();
String age = memberObj.get("age").toString();
}
}
strUrl如下所示:
{
"team": {
"team_id": "2",
"team_name": "volcanoe"
},
"member": [
{
"name": "Samantha",
"age": "20"
}
]
}
它给了我如下错误:
java.lang.ClassCastException: java.lang.Boolean cannot be cast to org.json.simple.JSONArray
对于线:
JSONArray jsonArrayMember = (JSONArray) jo.get("member");
我试图读取 json 的成员元素,但奇怪的是得到布尔错误。没有一个 json 使用布尔值,它们是 json 对象。
额外信息: 代码在开发服务器上工作正常,但在投入生产时,导致上述错误。与导入的代码或库/jdk 有什么关系吗?
任何帮助都会很棒。
解决方案
希望对你有帮助
String jsonString="{\"team\": {\"team_id\": \"2\",\"team_name\": \"volcanoe\"},\"member\": [{\"name\": \"Samantha\",\"age\": \"20\"}]}";
JSONObject jsonObject = new JSONObject(jsonString);
JSONArray jsonArrayMember=jsonObject.getJSONArray("member");
System.out.println(jsonArrayMember);
您能否将您的 org.json jar 文件更改为此链接中的org.json 并重试,希望这能解决您的问题
推荐阅读
- javascript - VerifyCsrfToken.php:53 上的 TokenMismatchException
- javascript - 无法显示来自 redux 的道具值
- php - 使用 Laravel FastExcel 包导入巨大 Excel 的内存高效方法是什么?
- spring-boot - 防止所有包含的 Spring Cloud 依赖项的 AutoConfiguration
- xcode - 应用程序中的 Ionic MusicKitJS 无法进行身份验证
- python - Discord 嵌入在 Discord.py 中的字段中对齐名称和值
- go - Golang 从变量初始化数组
- java - 无法使用 CLI 编译 java 文件
- flutter - 飞镖语言的materialApp之家
- c++ - 如何将 QML_ELEMENT 与 cmake 一起使用