java - JSON 对象到 Arraylist

标签 java android json arraylist

<分区>

数据是未知数量的 JSONobjects,我想捕获三个数据,NAME、LONGITUDE 和 LATITUDE 到 Arraylist 中。

这是以下代码的结果。

wrapall:[[title1, longitude1, latitude1, title2, longitude2, latitude2, title3, longitude3, latitude3, title4,.......]]

但这正是我所期望的。

包装:[[title1, longitude1, latitude1],[title2, longitude2, latitude2],[title3, longitude3, latitude3],......]

这样改格式应该怎么办?

private ArrayList<ArrayList<String>> wrapall =new ArrayList<>();
private ArrayList<String> transthree = new ArrayList<>();

private void parserJson(JSONArray jsonArray) {

    try {
        JSONArray array = jsonArray;
        Log.d("jsonarrayishere", array.toString());

        for (int i = 0; i < array.length(); i++) {
            JSONObject object = array.getJSONObject(i);
            String title = object.getString("NAME");
            String longitude = object.get("LONGITUDE").toString();
            String latitude = object.get("LATITUDE").toString();

                transthree.add(title);
                transthree.add(longitude);
                transthree.add(latitude);

        }

        wrapall.add(transthree);
        transthree = new ArrayList<>();

     Log.d("transthree",transthree.toString());

     Log.d("wrapall", wrapall.toString());

    } catch (JSONException e) {
        e.printStackTrace();
        Log.d("objectstestwrong", e.getLocalizedMessage());
    }


}

最佳答案

最好创建一个 POJO 类

示例代码

试试这个

Create a model class like this

public class DataModel
{
    String title;
    String longitude,latitude;

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getLongitude() {
        return longitude;
    }

    public void setLongitude(String longitude) {
        this.longitude = longitude;
    }

    public String getLatitude() {
        return latitude;
    }

    public void setLatitude(String latitude) {
        this.latitude = latitude;
    }
}

比用这个

private ArrayList<DataModel> wrapall = new ArrayList<>();

private void parserJson (JSONArray jsonArray){

    try {
        JSONArray array = jsonArray;
        Log.d("jsonarrayishere", array.toString());

        for (int i = 0; i < array.length(); i++) {
            JSONObject object = array.getJSONObject(i);

            DataModel dataModel = new DataModel();

            dataModel.setTitle(object.getString("NAME"));
            dataModel.setLatitude(object.get("LATITUDE").toString());
            dataModel.setLongitude(object.get("LONGITUDE").toString());

            //Add data model to array list
            wrapall.add(dataModel);
        }
    } catch (JSONException e) {
        e.printStackTrace();
        Log.d("objectstestwrong", e.getLocalizedMessage());
    }
}

使用它从列表中检索数据

    for (int i=0;i<wrapall.size();i++){
        Log.e("NAME",wrapall.get(i).getTitle());
        Log.e("LONGITUDE",wrapall.get(i).getLongitude());
        Log.e("LATITUDE",wrapall.get(i).getLatitude());
    }

关于java - JSON 对象到 Arraylist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51183315/

相关文章:

android - Android 中的字符集检测

Python读取多行JSON

json - golang - 解码动态 'flat' http-json 响应

java - 如何动态渲染数据并实时更新变化

java - 如何不将 DocumentRoot 写入 XML

java - JSF selectonemenu 无法实例化类

android - flutter 中 JSON 字符串中的特殊符号或单引号或撇号

Android listview checkedtextview

java - 我应该如何处理 JSoup 中删除的元素?

javascript - 使用 Firebase 进行简单的键/值检索