Java 如何从截击请求生成列表
我使用JSON文件和谷歌地图构建了一个应用程序,我需要知道如何重复一种模式,使用VolleyJava 如何从截击请求生成列表,java,android,Java,Android,我使用JSON文件和谷歌地图构建了一个应用程序,我需要知道如何重复一种模式,使用VolleyString 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.
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) {...
我的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获取城市对象的列表。有多种方法可以做到这一点: 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
}
公共级城市{
弦拉特;
管柱液化天然气;
公共城市(串lat、串lng){
this.lat=lat;
这是液化天然气=液化天然气;
}
公共字符串getLat(){
返回lat;
}
公共字符串getLng(){
返回液化天然气;
}
}
列表城市=新建链接列表();
requestQueue=Volley.newRequestQueue(getApplicationContext());
JsonObjectRequest JsonObjectRequest=新的JsonObjectRequest(Request.Method.POST,
urlAnim,新的Response.Listener(){
@凌驾
公共void onResponse(JSONObject响应){
试一试{
JSONArray AnimT=response.getJSONArray(“rutasAnim”);
对于(int i=0;i
你将拥有你所有的城市
2.使用JSON解析器库,这将使您更容易、有时更快地进行解析。为此,您可以使用相同的City类和一个库,如或您是否可以共享请求的JSON结果。准备好了!我共享JSON结果您是否想知道如何将该数据放入java列表?
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
}