正在寻找解决方案。 Java代码示例:
public void loadPositions(JSONObject result){
try {
JSONObject jObject = result.getJSONObject("points");
Iterator<String> keys = jObject.keys();
while (keys.hasNext()) {
String key = keys.next();
Log.v("list key", key);
if(jObject.get(key) instanceof JSONObject) {
JSONObject innerJObject = jObject.getJSONObject(key);
String lat = innerJObject.getString("lat");
String lon = innerJObject.getString("lon");
Log.i("details", "lat = " + lat + ", " + "lon = " + lon);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
JSON数据:
{
"points":{
"C50D15525":[
{
"lat":"51.643257329609156",
"lon":"17.798963651975885"
},
{
"lat":"51.643257329609156",
"lon":"17.798963651975885"
}
],
"BFFCDE4AF":[
{
"lat":"51.6434779",
"lon":"17.7993028"
},
{
"lat":"51.6434779",
"lon":"17.7993028"
},
{
"lat":"51.6434779",
"lon":"17.7993028"
}
]
}
}
上面的代码只给我列出密钥,但是我希望从“ BFFCDE4AF”和“ C50D15525”等许多方面来实现LAT和LON。我已经尝试了很多方法... JSON数据有效。
答案 0 :(得分:0)
您可以通过此实现 例如 points.C50D15525 [“ lat”]
但是您需要通过应用任何循环和关联概念来提取json。
答案 1 :(得分:0)
在“点”对象中,您的JSON有一个Array
对象,您需要使用getJSONArray()
方法获得该对象。遍历JSONArray
并获取“ lat”和“ lon”对象。
public void loadPositions(JSONObject result){
try {
JSONObject jObject = result.getJSONObject("points");
Iterator<String> keys = jObject.keys();
while (keys.hasNext()) {
String key = keys.next();
Log.v("list key", key);
JSONArray jArray = jObject.getJSONArray(key);
for (int i=0; i < jArray.length(); i++){
JSONObject obj = jArray.getJSONObject(i);
String lat = obj.optString("lat", "NA"));
String lon = obj.optString("lon", "NA"));
Log.i("details","key = " + key + " coor count = " + i + " lat = " + lat + ", " + "lon = " + lon);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
由于我尚未对此进行测试,请让我知道是否有任何问题。