簡體   English   中英

如何從Volley stringRequest生成列表

[英]How Generate an List from Volley stringRequest

我使用JSON文件和Google Maps構建了一個應用程序,我需要知道如何重復使用Volley String Request從JSON獲取數據的模式。

這個想法是這樣的:

city.add(new LatLng(12.94695, 77.64058));
city.add(new LatLng(12.94735, 77.64076));
city.add(new LatLng(12.9476, 77.64081));
city.add(new LatLng(12.94786, 77.64078));
city.add(new LatLng(12.94809, 77.6407));
city.add(new LatLng(12.9483, 77.64058));
city.add(new LatLng(12.9486, 77.64029));

我使用它的方式是不重復城市。

添加JSON列表的每個坐標。

這是我的意圖:

 requestQueue = Volley.newRequestQueue(getApplicationContext());

        JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST,
                urlAnim, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {

                try {

                    JSONArray AnimT = response.getJSONArray("rutasAnim");
                    for (int i = 0; i < AnimT.length(); i++) {
                        JSONObject object1 = AnimT.getJSONObject(i);

                        double latA = object1.getDouble("lat");
                        double lngA = object1.getDouble("lng");

                        city.add(new LatLng(latA, lngA));


                    }

                } catch (JSONException e) {...

我需要重復這種模式: city.add(new LatLng(latA, lngA)); 與公元前的不同城市。

我怎樣才能做一個while整個模式的?

例如,這應該是結果(類似於PHP中的樣式)。

我需要的示例:

 requestQueue = Volley.newRequestQueue(getApplicationContext());

        JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST,
                urlAnim, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {

                try {

                    JSONArray AnimT = response.getJSONArray("rutasAnim");
                    for (int i = 0; i < AnimT.length(); i++) {
                        JSONObject object1 = AnimT.getJSONObject(i);

                        double latA = object1.getDouble("lat");
                        double lngA = object1.getDouble("lng");

                        city.add(new LatLng(12.94695, 77.64058));
                        city.add(new LatLng(12.94735, 77.64076));
                        city.add(new LatLng(12.9476, 77.64081));
                        city.add(new LatLng(12.94786, 77.64078));
                        city.add(new LatLng(12.94809, 77.6407));
                        city.add(new LatLng(12.9483, 77.64058));
                        city.add(new LatLng(12.9486, 77.64029));


                    }

                } catch (JSONException e) {

我的JSON文件

{"rutasAnim": [{
            "anim":"city.add(new LatLng(6.3490548, -75.5580200));",
            "lat":"6.3490548",
            "lng":"-75.5580200"
        },{
            "anim":"city.add(new LatLng(6.3345438, -75.5671886));",
            "lat":"6.3345438",
            "lng":"-75.5671886"
        },{
            "anim":"city.add(new LatLng(6.3378121, -75.5700586));",
            "lat":"6.3378121",
            "lng":"-75.5700586"
        },{
            "anim":"city.add(new LatLng(6.3395342, -75.5656866));",
            "lat":"6.3395342",
            "lng":"-75.5656866"
        },{...

如果我對你的問題正確。 您想要從JSON獲取City Object的列表。 有辦法做到這一點:

1.類似於您當前正在執行的操作:

public class City{
   String lat;
   String lng;

   public City(String lat, String lng){
       this.lat = lat;
       this.lng = lng;
   }

   public String getLat(){
       return lat;
   }
   public String getLng(){
       return lng;
   }
}
List<City> cities = new LinkedList<>();

requestQueue = Volley.newRequestQueue(getApplicationContext());

    JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST,
            urlAnim, new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {

            try {

                JSONArray AnimT = response.getJSONArray("rutasAnim");
                for (int i = 0; i < AnimT.length(); i++) {
                    JSONObject object1 = AnimT.getJSONObject(i);

                    String latA = object1.getString("lat");
                    String lngA = object1.getString("lng");

                    cities.add(new City(latA , lngA ));


                }

            } catch (JSONException e) {
             //TODO Handle JSON Exception
           }

您將擁有所有城市

2.使用JSON解析器庫,它將使您的解析更加輕松,有時甚至更快。 為此,您可以使用相同的City類以及像GSONMoshi這樣的庫之一

暫無
暫無

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

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