我想将纬度的字符串值更改为我想在地图位置确定中使用的整数。 我的代码如下:
try {
JSONObject jsonObj = new JSONObject(myJSON);
peoples = jsonObj.getJSONArray(TAG_RESULTS);
for(int i=0;i<peoples.length();i++){
JSONObject c = peoples.getJSONObject(i);
String timedate = c.getString(TAG_TIMEDATE);
String binno = c.getString(TAG_BINNO);
String data1 = c.getString(TAG_DATA1);
String data2 = c.getString(TAG_DATA2);
String data3 = c.getString(TAG_DATA3);
String averagedata = c.getString(TAG_AVERAGEDATA);
String latitude = c.getString(TAG_LATITUDE);
String longitude = c.getString(TAG_LONGITUDE);
HashMap<String,String> trashcan = new HashMap<String,String>();
trashcan.put(TAG_TIMEDATE,timedate);
trashcan.put(TAG_BINNO,binno);
trashcan.put(TAG_DATA1,data1);
trashcan.put(TAG_DATA2,data2);
trashcan.put(TAG_DATA3,data3);
trashcan.put(TAG_AVERAGEDATA,averagedata);
trashcan.put(TAG_LATITUDE,latitude);
trashcan.put(TAG_LONGITUDE,longitude);
trashcanList.add(trashcan);
}
ListAdapter adapter = new SimpleAdapter(
MapsActivity.this, trashcanList, R.layout.list_item,
new String[]{TAG_TIMEDATE,TAG_BINNO,TAG_DATA1,TAG_DATA2,TAG_DATA3,TAG_AVERAGEDATA,TAG_LATITUDE,TAG_LONGITUDE},
new int[]{R.id.timedate,R.id.binno, R.id.data1,R.id.data2,R.id.data3,R.id.averagedata, R.id.latitude, R.id.longitude}
);
list.setAdapter(adapter);
} catch (JSONException e) {
e.printStackTrace();
}
我尝试了以下解决方案,但纬度值每次都为零。
int latitude1 = jsonObj.getInt("Latitude");
答案 0 :(得分:0)
Lat和Lng的值应该类似于
您不能将它们放在原始int或Integer中。您可能想要使用其他数据类型,如
String myJSON = "{\"lat\":\"22.3361462197085\",\"lng\":\"114.1725279197085\"}";
try {
JSONObject jsonObj = new JSONObject(myJSON);
BigDecimal lat = jsonObj.getBigDecimal("lat");
BigDecimal lng = jsonObj.getBigDecimal("lng");
System.out.println(lat);
System.out.println(lng);
} catch (JSONException e) {
e.printStackTrace();
}
如果找不到getBigDecimal()方法,请尝试使用getDouble(String name)或getLong(String name)。