Toast Array值无效

时间:2011-07-28 03:04:04

标签: java android arrays json

我正在尝试测试以确保我想要的值在数组中。在第一个吐司下面工作,只是吐出我的整个JSON数据串。

但是我试图在我的新JSONArray中显示[1]的值的第二个toast jsonArray给了我以下错误jsonArray can not be defined to a variable我没有正确引用它?

try{
    JSONArray jsonArray = new JSONArray(jsonData);
} catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
Toast.makeText(MainActivity.this, jsonData, Toast.LENGTH_LONG).show();
Toast.makeText(MainActivity.this, jsonArray[1], Toast.LENGTH_LONG).show();

编辑根据反馈,它也可能是一个范围问题,因为它在“尝试”我是否必须尝试?如果是这样,我如何将其提供给脚本的其余部分。

3 个答案:

答案 0 :(得分:3)

JSONArray只是一个Java对象,而不是一个数组,这意味着你不能对它使用数组索引。也许你的意思是jsonData[1]?此外,由于在jsonArray块中声明并初始化了try,因此它不在Toast调用的范围内。假设jsonDataCollection

try
{
    JSONArray jsonArray = new JSONArray(jsonData);
    // ...
    Toast.makeText(MainActivity.this, jsonData.get(1), Toast.LENGTH_LONG).show();
}
// ...

答案 1 :(得分:3)

将最后一行更改为:

Toast.makeText(MainActivity.this, jsonArray.get(1).toString(), Toast.LENGTH_LONG).show();

或者,如果你知道元素1是一个字符串,

Toast.makeText(MainActivity.this, jsonArray.getString(1), Toast.LENGTH_LONG).show();

修改

根据你的编辑,我很尴尬,我没有看到它,但是,你确实有一个范围问题。移动try块内的Toasts(除了我上面提到的内容)。

答案 2 :(得分:2)

jsonArray变量未在Toast的同一范围内声明。

尝试这样的事情:

    try {
        JSONArray jsonArray = new JSONArray(jsonData);

        Toast.makeText(MainActivity.this, jsonData, Toast.LENGTH_LONG).show();
        Toast.makeText(MainActivity.this, jsonArray[1], Toast.LENGTH_LONG).show();
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }