【问题标题】:Getting error about json and i am new in Android World收到关于 json 的错误,我是 Android World 的新手
【发布时间】:2020-04-14 20:59:14
【问题描述】:

当我单击 Activity 中的按钮时出现此错误 我正在 Android Studio 中开发应用程序并收到有关 json 的错误,我不确定如何处理此错误

错误详情

尝试调用虚拟方法'int org.json.JSONArray.length()' com.example.tourista.DataParser.getAllnearbyPlaces(DataParser.java:62) 处的空对象引用 在 com.example.tourista.DataParser.parse(DataParser.java:100)

private List<HashMap<String,String>> getAllnearbyPlaces (JSONArray jsonArray)
{

//Line There i m getting Error

    int counter = jsonArray.length();

    List<HashMap<String,String>> NearbyPlacesList = new ArrayList<>();
    HashMap<String,String> NearbyplaceMap = null;

    if (jsonArray != null) {

        for (int i = 0; i < counter; i++) {
            try {
                NearbyplaceMap = getSingleNearbyPlace((JSONObject) jsonArray.get(i));
                NearbyPlacesList.add(NearbyplaceMap);
            } catch (JSONException e) {
                e.printStackTrace();
            }

        }
    }
    return NearbyPlacesList;
}

public List<HashMap<String,String>>  parse(String JSONdata)
{
    JSONArray jsonArray= null;
    JSONObject jsonObject;


    try
    {
        jsonObject =new JSONObject(JSONdata);
        jsonArray = jsonObject.getJSONArray("results");
    }
    catch (JSONException e)
    {
        e.printStackTrace();
    }
    return getAllnearbyPlaces(jsonArray);

}

【问题讨论】:

  • 审阅评论:发布问题时注意格式
  • 感谢您的突出显示,下次我会处理这个...

标签: java android json android-studio


【解决方案1】:

您需要提供更多代码。谁在调用 getAllnearbyPlaces (JSONArray jsonArray)?

当这个类被调用时,你传递的是一个空 JSONArray

【讨论】:

    【解决方案2】:

    针对这个具体情况

    jsonArray = jsonObject.getJSONArray("results") 可能会抛出JSONException,因此您的数组永远不会被初始化并保持null。查看您的日志,您可能会看到一些带有错误的红色文本行。

    要了解有关 Nullpointerexceptions 的更多信息,请阅读:

    What is a NullPointerException, and how do I fix it?

    【讨论】:

    【解决方案3】:

    您的错误在于这一行:int counter = jsonArray.length();

    如果你有一个空对象,你不能调用它的任何方法

    您的 jsonArray 为空,因此您无法调用 jsonArray.length()

    你应该把int counter = jsonArray.length(); 放在if (jsonArray != null) {下面

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-12
      • 2020-07-10
      • 2022-01-20
      • 1970-01-01
      • 2017-12-31
      • 2021-01-20
      • 2014-05-07
      • 2021-05-28
      相关资源
      最近更新 更多