我有一个json文件存储在我的资产文件夹(map_location.json)中我需要显示从json文件解析的地图标记。这是我的json文件:
{
"Dine": [
{
"id": 1,
"name": "Place Name",
"address": "Place Address",
"lat": -33.867,
"lng": 151.206
}
]
}
答案 0 :(得分:0)
首先,您需要使用以下方法从资产中读取JSON文件:
public String loadJSONFile() {
String jsonStr = null;
try {
InputStream is = getAssets().open("map_location.json");
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
jsonStr = new String(buffer, "UTF-8");
} catch (IOException ex) {
ex.printStackTrace();
return null;
}
return jsonStr;
}
然后使用以下代码读取返回的jSON字符串:
JSONObject obj = new JSONObject(loadJSONFile());
JSONArray m_jArry = obj.getJSONArray("Dine");
ArrayList<Double> latList= new ArrayList<Double>();
ArrayList<Double> lngList= new ArrayList<Double>();
ArrayList<String> nameList= new ArrayList<String>();
ArrayList<String> addressList= new ArrayList<String>();
for (int i = 0; i < m_jArry.length(); i++)
{
JSONObject jo_inside = m_jArry.getJSONObject(i);
String name_value = jo_inside.getString("name");
String address_value = jo_inside.getString("address");
double lat_value = jo_inside.getDouble("lat");
double lng_value = jo_inside.getDouble("lng");
nameList.add(name_value);
addressList.add(address_value);
latList.add(lat_value);
lngList.add(lng_value);
}