![](/img/trans.png)
[英]Android : how to return JSONObject from Volley OnRequest StringRequest method
[英]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類以及像GSON或Moshi這樣的庫之一
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.