Android:org.json.JSON.typeMismatch

时间:2017-07-19 22:35:23

标签: java android json

我在下面有一个解析JSON的方法。但是我遇到了一个错误(你可以从标题中看到),它说的是#org.json.JSON.typeMismatch"

尝试记录输出的名称,但没有运气。我在破解JSON方面的经验很少(你可以从中看出这一点),所以想知道如何解决这个问题。

private Boolean parse()
{
    try
    {
        JSONArray ja=new JSONArray(jsonData);
        JSONObject jo;

        realms.clear();

        for (int i=0;i<ja.length();i++)
        {

            jo=ja.getJSONObject(i);

                String name = jo.getString("name");
                Log.d("",name);


            //realms.add(name);


        }

        return true;

    } catch (JSONException e) {
        e.printStackTrace();
        return false;
    }
}

我想解析的JSON是:

{
"realms": [{
    "type": "pvp",
    "population": "low",
    "queue": false,
    "status": true,
    "name": "Aegwynn",
    "slug": "aegwynn",
    "battlegroup": "Misery",
    "locale": "de_DE",
    "timezone": "Europe/Paris",
    "connected_realms": ["aegwynn"]
}, {
    "type": "pve",
    "population": "low",
    "queue": false,
    "status": true,
    "name": "Aerie Peak",
    "slug": "aerie-peak",
    "battlegroup": "Reckoning / Abrechnung",
    "locale": "en_GB",
    "timezone": "Europe/Paris",
    "connected_realms": ["bronzebeard", "aerie-peak"]
}]

(还有更多内容,但我不想全部复制)

不确定我是否可能没有解决&#34;领域&#34;阵列?只是希望对此有任何帮助!我无法理解为什么我会出现不匹配的情况?

亲切的问候

J G

1 个答案:

答案 0 :(得分:0)

你的JSON字符串在这里显示它是一个JSONObject而不是JSONArray,所以你必须用这个字符串初始化一个JSONObject,之后从前一个JSONObject获得一个名为realms的JSONArray。 Here is an example供您参考