所以我有一句话:
JSONObject res = new JSONObject(result);
这个输出是:
{
"result": "[\"Pretty Woman\",\"Minions Banana Song\",\"Squatters Rights\",\"Minions Banana\",\"Minions Puppy\"]",
"id": 0,
"jsonrpc": "2.0"
}
然后我有了这句话:
JSONArray moviesJson = res.optJSONArray("result");
并且输出为null。这是我的语法错误吗?我无法弄清楚发生了什么。
我试图将结果中包含的数组作为输出
答案 0 :(得分:1)
键result
包含一个数组,但是以单个字符串的形式。您可以将数组作为:
JSONArray moviesJson = new JSONArray(res.getString("result"));
答案 1 :(得分:0)
"result"
不包含JSON数组,它是数组的String表示形式。
删除周围的双引号和反斜杠。
变化:
{
"result": "[\"Pretty Woman\",\"Minions Banana Song\",\"Squatters Rights\",\"Minions Banana\",\"Minions Puppy\"]",
"id": 0,
"jsonrpc": "2.0"
}
到
{
"result": [
"Pretty Woman",
"Minions Banana Song",
"Squatters Rights",
"Minions Banana",
"Minions Puppy"
],
"id": 0,
"jsonrpc": "2.0"
}
答案 2 :(得分:0)
您目前的整体输出也是一个对象:
{"result":"[\"Pretty Woman\",\"Minions Banana Song\",\"Squatters
Rights\",\"Minions Banana\",\"Minions Puppy\"]","id":0,"jsonrpc":"2.0"}
相应的样本将是:
class Sample {
String result;
String id;
String jsonrpc;
...getters and setters
}
您应先尝试解析为JSONObject
,然后再取出results
数组。
答案 3 :(得分:0)
JSON数组就像
{
"result": ["Pretty Woman","Minions Banana Song","Squatters Rights","Minions Banana","Minions Puppy"],
"id": 0,
"jsonrpc": "2.0"
}
您正在将其视为JSON Object的字符串。这应该是不经意的 显示空值。
获取JSON数组值
JSONarray result= somejsonobjectname.getJSONArray("Result")