我使用JSON来完美地从网上接收数据,但是我想使用我存储在数据库中然后想要在MapActivty
中使用的经度和纬度,所以我想将所有值存储在一个简单的数组中来玩它在MapActivity中
ServiceHandler serviceClient = new ServiceHandler();
Log.d("url: ", "> " + URL_ITEMS);
String json = serviceClient.makeServiceCall(URL_ITEMS,ServiceHandler.GET);
// print the json response in the log
Log.d("Get match fixture resps","> " + json);
if (json != null) {
try {
Log.d("try", "in the try");
JSONObject jsonObj = new JSONObject(json);
Log.d("jsonObject", "new json Object");
// Getting JSON Array node
matchFixture = jsonObj.getJSONArray(TAG_FIXTURE);
Log.d("json aray", "user point array");
int len = matchFixture.length();
Log.d("len", "get array length");
for (int i = 0; i < matchFixture.length(); i++) {
JSONObject c = matchFixture.getJSONObject(i);
String matchId = c.getString(TAG_MATCHID);
Log.d("matchId", matchId);
String teamA = c.getString(TAG_TEAMA);
Log.d("teamA", teamA);
String teamB = c.getString(TAG_TEAMB);
Log.d("teamB", teamB);`
答案 0 :(得分:0)
我建议使用GSON或Jackson转换回来和来自Java / JSON。
GSON - 基于现有答案
Gson - convert from Json to a typed ArrayList<T>
arrayFromJson = gson.fromJson(json, new TypeToken<List<Pair<Float,Float>>(){}.getType());
Google Maps API的LatLng对象是一对,因此您可能需要尝试。
arrayFromJson = gson.fromJson(json, new TypeToken<List<LatLng>(){}.getType());
然后您可以添加标记:
for (LatLng latlng: arrayFromJSON) {
Marker marker = mMap.addMarker(new MarkerOptions()
.position(latlng)
.draggable(true));
}
您可能需要查看:Google Maps Example,了解它们如何协同工作。