java json 转换时出错
java json error on casting
我的 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 中的 None 正在使用布尔值,它们是 json 对象。
额外信息:
代码在开发服务器上运行良好,但是当投入生产时,它导致了上述错误。与代码或导入的 library/jdk 有什么关系吗?
任何帮助都会很棒。
由于"team"是一个json对象{},"member"是一个json数组[],
你应该试试这个
JSONArray jsonArrayMember = jo.getJSONArray("member");
希望对您有所帮助
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 文件更改为此 link org.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 中的 None 正在使用布尔值,它们是 json 对象。
额外信息: 代码在开发服务器上运行良好,但是当投入生产时,它导致了上述错误。与代码或导入的 library/jdk 有什么关系吗?
任何帮助都会很棒。
由于"team"是一个json对象{},"member"是一个json数组[],
你应该试试这个
JSONArray jsonArrayMember = jo.getJSONArray("member");
希望对您有所帮助
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 文件更改为此 link org.json 中的文件,然后重试希望这能解决您的问题