在Android上获取JSON数组数据

问题描述 投票:0回答:2

我的数据库中有一些测试值,我想在 android 中获取它们。 这是我的数据库中值的以下 JSON 输出:

 [{"email_address":"[email protected]","comment":"qwehgashdgaskdaweq","date_comment":"2014-06-21","time_comment":"08:28:00","password":"rainier1990"},
 {"email_address":"[email protected]","comment":"asfasdasdasd","date_comment":"2104-06-12","time_comment":"09:03:00","password":"rainier1990"}
 {"email_address":"[email protected]","comment":"asdsfafd","date_comment":"2014-06-22","time_comment":"04:44:00","password":"rainier1990"}]

但是每次我运行此代码时:http://prntscr.com/3vhs5j,它只给我 JSON 输出的第一行。:http://prntscr.com/3vi34b

如何在 android 中显示所有行(而不是 1 行)?

java android json android-json
2个回答
0
投票

您可以使用android API提供的JSONObject。 JSONObject 有一个名为 getJSONArray() 的方法

http://developer.android.com/reference/org/json/JSONObject.html#getJSONArray(java.lang.String)

你的错误是你正在用你的对象实例化一个JSONArray。你应该尝试这个:

JSONArray myArray =jsonObject.getJSONArray();

这是我的一个应用程序中的一段代码,可以很好地检索 Json 数据。

 success = jObject.getInt(TAG_SUCCESS);
 vehicles = jObject.getJSONArray(Vehicle.TAG_VEHICLES);

        if(success == 1) {
            // loop through all the vehicles
            for(int i = 0; i < vehicles.length(); i++) {
                JSONObject obj = vehicles.getJSONObject(i);

                // Get each element based on it's tag
                String year = obj.getString(Vehicle.TAG_YEAR);
                String model = obj.getString(Vehicle.TAG_MODEL);
                String brand = obj.getString(Vehicle.TAG_BRAND);
                String color = obj.getString(Vehicle.TAG_COLOR);
                String license_plate = obj.getString(Vehicle.TAG_LICENSE);
                String main_driver = obj.getString(Vehicle.TAG_DRIVER);
                String policeNumber = obj.getString(Vehicle.TAG_POLICENUMBER);
                String driversLicense = obj.getString(Vehicle.TAG_DRIVER_LICENSE);
                String licenseState = obj.getString(Vehicle.TAG_LICENSE_STATE);
                String driverBirthday = obj.getString(Vehicle.TAG_BIRTHDAY_MONTH) + "/" +
                        obj.getString(Vehicle.TAG_BIRTHDAY_DAY) + "/" +
                        obj.get(Vehicle.TAG_BIRTHDAY_YEAR);
                String driverGender = obj.getString(Vehicle.TAG_DRIVER_GENDER);

                ListRowGroup group = new ListRowGroup(brand + " " + year + " " + model, brand);
                group.children.add(brand + " " + year + " " + model);
                group.children.add(policeNumber);
                group.children.add(model);
                group.children.add(color);
                group.children.add(license_plate);
                group.children.add(main_driver);
                group.children.add(driversLicense + "   -   " + licenseState);
                group.children.add(driverBirthday + "   -   " + driverGender);

                vehiclesGroup.append(i, group);
            }

0
投票

如果您在问题中添加一些用于获取 JSON 的代码,以便更容易引用,将会有所帮助,但是,我没有看到循环,这就是为什么它只获取第一行。

您可能想参考这个问题:Android/Java中的JSON数组迭代,但基本上使用JSONArray的

length
属性并循环多次。

© www.soinside.com 2019 - 2024. All rights reserved.