java - Android JSONArray 到 ArrayList

标签 java android json arraylist arrays

我正在尝试在我的 Android 应用程序中将 JSONArray 解析为 ArrayList。 PHP 脚本正确地返回预期结果,但是 Java 失败并在 resultsList.add(map)

出现空指针异常
public void agencySearch(String tsearch)    {
        // Setting the URL for the Search by Town
        String url_search_agency = "http://www.infinitycodeservices.com/get_agency_by_city.php";
        // Building parameters for the search
        List<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add(new BasicNameValuePair("City", tsearch));

        // Getting JSON string from URL
        JSONArray json = jParser.getJSONFromUrl(url_search_agency, params);

        for (int i = 0; i < json.length(); i++) {
            HashMap<String, String> map = new HashMap<String, String>();

            try {
                JSONObject c = (JSONObject) json.get(i);
                //Fill map
                Iterator iter = c.keys();
                while(iter.hasNext())   {
                    String currentKey = (String) iter.next();
                    map.put(currentKey, c.getString(currentKey));
                }
                resultsList.add(map);

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

            }

        };

        MainActivity.setResultsList(resultsList);

    }

最佳答案

这样试试可能对你有帮助,

public void agencySearch(String tsearch)    {
        // Setting the URL for the Search by Town
        String url_search_agency = "http://www.infinitycodeservices.com/get_agency_by_city.php";
        // Building parameters for the search
        List<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add(new BasicNameValuePair("City", tsearch));

        // Getting JSON string from URL
        JSONArray json = jParser.getJSONFromUrl(url_search_agency, params);

       ArrayList<HashMap<String, String>> resultsList = new  ArrayList<HashMap<String, String>>();

        for (int i = 0; i < json.length(); i++) {
            HashMap<String, String> map = new HashMap<String, String>();

            try {
                JSONObject c = json.getJSONObject(position);
                //Fill map
               Iterator<String> iter = c.keys();
                while(iter.hasNext())   {
                    String currentKey = it.next();
                    map.put(currentKey, c.getString(currentKey));
                }
                resultsList.add(map);

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

            }

        };

        MainActivity.setResultsList(resultsList);

    }

关于java - Android JSONArray 到 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26814673/

相关文章:

java - 如何使用注释删除 fromHtml 已弃用的磨损

java - JSoup - 选择所有评论

android - 如何彻底退出沉浸式全屏模式?

android - 如何从麦克风输入中获取音量

android - 如何禁用 build.gradle 中的任务

java - 当Spring管理的bean和Pojo依赖相同的服务时如何避免Singleton

java - 线程内线程 : what happens if parent thread is killed?

java - NetBeans 中与 Maven 的跨项目依赖关系

javascript - 排序复杂的 JSON 对象

javascript - 使用JQuery获取JSON数据转化为html