簡體   English   中英

在Android上獲取JSON數組的數據

[英]Fetch data of JSON array on Android

我的數據庫中有一些測試值,我想在android中獲取它們。 這是數據庫中值的以下JSON輸出:

 [{"email_address":"rainier_gaari@hotmail.com","comment":"qwehgashdgaskdaweq","date_comment":"2014-06-21","time_comment":"08:28:00","password":"rainier1990"},
 {"email_address":"rainier_gaari@hotmail.com","comment":"asfasdasdasd","date_comment":"2104-06-12","time_comment":"09:03:00","password":"rainier1990"}
 {"email_address":"rainier_gaari@hotmail.com","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行)?

如果您在問題中放入一些用於獲取JSON的代碼,這將有所幫助,以使其更易於引用,但是,我看不到循環,這就是為什么它僅獲得第一行的原因。

您可能要參考以下問題: Android / Java中的JSON Array迭代,但基本上使用JSONArray的length屬性並循環多次。

您可以使用android API提供的JSONObject。 JSONObject有一個稱為getJSONArray()的方法

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

您的錯誤是您正在使用Object實例化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);
            }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM