我的 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 的成员元素,但奇怪的是得到了 boolean 错误。没有一个 json 使用 boolean,它们是 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 中的文件并重试希望这能解决您的问题
关于java json 转换时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50442946/