解析JSON数组时出错

3

我有一个JSON数据需要解析到我的Android应用中:

{"result":"success","source":"getPlayerNames","success":["Player1","Player2"]}

为了解析它,我这样做(其中jsonData是包含上述数据的字符串):
ArrayList<String> players;
players = new ArrayList();

JSONObject json = new JSONObject(jsonData);
JSONArray array = json.getJSONArray("success");

for (int i = 0; i < array.length() ; i++)
{
    players.add(array.getString(i));
}

但是players ArrayList仍然是空的...(大小为0)

为什么?你能帮我吗?

谢谢!


你的代码完全没问题,我已经亲自测试过了。这里没有任何问题。 - Sean Connolly
1个回答

0

尝试更改这个

players = new ArrayList();

至:

players = new ArrayList<String>();

看看是否有帮助

编辑: 明白了。工作代码:

ArrayList<String> players;
players = new ArrayList();

JSONObject json = new JSONObject(jsonData);
JSONArray array = json.getJSONArray("success");

for (int i = 0; i < array.length() ; i++)
{
    players.add((String)array.get(i));
}

不行,还是一样的问题... 我认为问题在于JSONArray解析,但是具体在哪里呢? - natinusala
泛型声明和转换为字符串是隐式的,因此无需更改。实际上,我强烈支持 @user1947177 使用 getString 而不是 get,因为它允许 org.json 为您进行一些错误检查。 - Sean Connolly

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接