Android 使用org.json结构解析JSONArray
您好,我想问的是如何用org.json解析获取JSONArray值 我有这样的geojson数据Android 使用org.json结构解析JSONArray,android,json,loops,geojson,org.json,Android,Json,Loops,Geojson,Org.json,您好,我想问的是如何用org.json解析获取JSONArray值 我有这样的geojson数据 { "features": [ { "geometry": { "coordinates": [ 112.732816, -7.246557 ], "type": "Point" }, "type": "Feature", "properties": { "tinggi_tower": 80, "nm_type"
{
"features": [
{
"geometry": {
"coordinates": [
112.732816,
-7.246557
],
"type": "Point"
},
"type": "Feature",
"properties": {
"tinggi_tower": 80,
"nm_type": "SST (4 kaki)",
"site_id": "SBYPASTUR",
"nama_site": "Pasar Turi Utara",
"nm_kota": "Surabaya",
"nm_site_type": "GF",
"jml_tenant": 2
}
}
],
"type": "FeatureCollection"
}
limap = new ArrayList<Site_Map_Client>();
JSONArray arrfeatures = json.getJSONArray("features");
for (int i = 0; i < arrfeatures.length(); i++) {
Site_Map_Client modmap = new Site_Map_Client();
JSONObject objfeatures = arrfeatures.getJSONObject(i);
JSONObject objgeo = objfeatures.getJSONObject("geometry");
JSONArray arrcoord = objgeo.getJSONArray("coordinates");
//how to get longtitude and latitude value for this loop
for (int j = 0; j < arrcoord.length(); j++) {
if(i == 0){
modmap.setLongtitude(arrcoord.getDouble(i));
} else if (i == 1) {
modmap.setLatitude(arrcoord.getDouble(i));
}
}
JSONObject objprop = objfeatures.getJSONObject("properties");
modmap.setSiteid(objprop.getString("site_id"));
modmap.setNmsite(objprop.getString("nama_site"));
modmap.setTipetower(objprop.getString("nm_type"));
modmap.setTipesite(objprop.getString("nm_site_type"));
modmap.setTinggitower(objprop.getDouble("tinggi_tower"));
modmap.setKota(objprop.getString("nm_kota"));
modmap.setJmtenant(objprop.getInt("jml_tenant"));
limap.add(modmap);
}
for (int j = 0; j < arrcoord.length(); j++) {
if(j == 0){
modmap.setLongtitude(arrcoord.getDouble(j));
} else if (j == 1) {
modmap.setLatitude(arrcoord.getDouble(j));
}
}
for (int j = 0; j < arrcoord.length(); j++) {
if(j == 0){
modmap.setLongtitude(arrcoord.getDouble(i));
} else if (j == 1) {
modmap.setLatitude(arrcoord.getDouble(i));
}
}
我想要得到langtitude和longtude值,而不是像这样用library org.json进行解析
{
"features": [
{
"geometry": {
"coordinates": [
112.732816,
-7.246557
],
"type": "Point"
},
"type": "Feature",
"properties": {
"tinggi_tower": 80,
"nm_type": "SST (4 kaki)",
"site_id": "SBYPASTUR",
"nama_site": "Pasar Turi Utara",
"nm_kota": "Surabaya",
"nm_site_type": "GF",
"jml_tenant": 2
}
}
],
"type": "FeatureCollection"
}
limap = new ArrayList<Site_Map_Client>();
JSONArray arrfeatures = json.getJSONArray("features");
for (int i = 0; i < arrfeatures.length(); i++) {
Site_Map_Client modmap = new Site_Map_Client();
JSONObject objfeatures = arrfeatures.getJSONObject(i);
JSONObject objgeo = objfeatures.getJSONObject("geometry");
JSONArray arrcoord = objgeo.getJSONArray("coordinates");
//how to get longtitude and latitude value for this loop
for (int j = 0; j < arrcoord.length(); j++) {
if(i == 0){
modmap.setLongtitude(arrcoord.getDouble(i));
} else if (i == 1) {
modmap.setLatitude(arrcoord.getDouble(i));
}
}
JSONObject objprop = objfeatures.getJSONObject("properties");
modmap.setSiteid(objprop.getString("site_id"));
modmap.setNmsite(objprop.getString("nama_site"));
modmap.setTipetower(objprop.getString("nm_type"));
modmap.setTipesite(objprop.getString("nm_site_type"));
modmap.setTinggitower(objprop.getDouble("tinggi_tower"));
modmap.setKota(objprop.getString("nm_kota"));
modmap.setJmtenant(objprop.getInt("jml_tenant"));
limap.add(modmap);
}
for (int j = 0; j < arrcoord.length(); j++) {
if(j == 0){
modmap.setLongtitude(arrcoord.getDouble(j));
} else if (j == 1) {
modmap.setLatitude(arrcoord.getDouble(j));
}
}
for (int j = 0; j < arrcoord.length(); j++) {
if(j == 0){
modmap.setLongtitude(arrcoord.getDouble(i));
} else if (j == 1) {
modmap.setLatitude(arrcoord.getDouble(i));
}
}
limap=newarraylist();
JSONArray arrfactures=json.getJSONArray(“features”);
对于(int i=0;i
问题是为什么长和长结构是无序的,我得到了错误的坐标?
对于这个案例研究,有没有迭代JsonArray的想法
对不起,我的英语不好,谢谢啊,对不起,我看错了循环 迭代必须是这样的
{
"features": [
{
"geometry": {
"coordinates": [
112.732816,
-7.246557
],
"type": "Point"
},
"type": "Feature",
"properties": {
"tinggi_tower": 80,
"nm_type": "SST (4 kaki)",
"site_id": "SBYPASTUR",
"nama_site": "Pasar Turi Utara",
"nm_kota": "Surabaya",
"nm_site_type": "GF",
"jml_tenant": 2
}
}
],
"type": "FeatureCollection"
}
limap = new ArrayList<Site_Map_Client>();
JSONArray arrfeatures = json.getJSONArray("features");
for (int i = 0; i < arrfeatures.length(); i++) {
Site_Map_Client modmap = new Site_Map_Client();
JSONObject objfeatures = arrfeatures.getJSONObject(i);
JSONObject objgeo = objfeatures.getJSONObject("geometry");
JSONArray arrcoord = objgeo.getJSONArray("coordinates");
//how to get longtitude and latitude value for this loop
for (int j = 0; j < arrcoord.length(); j++) {
if(i == 0){
modmap.setLongtitude(arrcoord.getDouble(i));
} else if (i == 1) {
modmap.setLatitude(arrcoord.getDouble(i));
}
}
JSONObject objprop = objfeatures.getJSONObject("properties");
modmap.setSiteid(objprop.getString("site_id"));
modmap.setNmsite(objprop.getString("nama_site"));
modmap.setTipetower(objprop.getString("nm_type"));
modmap.setTipesite(objprop.getString("nm_site_type"));
modmap.setTinggitower(objprop.getDouble("tinggi_tower"));
modmap.setKota(objprop.getString("nm_kota"));
modmap.setJmtenant(objprop.getInt("jml_tenant"));
limap.add(modmap);
}
for (int j = 0; j < arrcoord.length(); j++) {
if(j == 0){
modmap.setLongtitude(arrcoord.getDouble(j));
} else if (j == 1) {
modmap.setLatitude(arrcoord.getDouble(j));
}
}
for (int j = 0; j < arrcoord.length(); j++) {
if(j == 0){
modmap.setLongtitude(arrcoord.getDouble(i));
} else if (j == 1) {
modmap.setLatitude(arrcoord.getDouble(i));
}
}
for(int j=0;j
现在已经解决了您的内部for循环应该是这样的
{
"features": [
{
"geometry": {
"coordinates": [
112.732816,
-7.246557
],
"type": "Point"
},
"type": "Feature",
"properties": {
"tinggi_tower": 80,
"nm_type": "SST (4 kaki)",
"site_id": "SBYPASTUR",
"nama_site": "Pasar Turi Utara",
"nm_kota": "Surabaya",
"nm_site_type": "GF",
"jml_tenant": 2
}
}
],
"type": "FeatureCollection"
}
limap = new ArrayList<Site_Map_Client>();
JSONArray arrfeatures = json.getJSONArray("features");
for (int i = 0; i < arrfeatures.length(); i++) {
Site_Map_Client modmap = new Site_Map_Client();
JSONObject objfeatures = arrfeatures.getJSONObject(i);
JSONObject objgeo = objfeatures.getJSONObject("geometry");
JSONArray arrcoord = objgeo.getJSONArray("coordinates");
//how to get longtitude and latitude value for this loop
for (int j = 0; j < arrcoord.length(); j++) {
if(i == 0){
modmap.setLongtitude(arrcoord.getDouble(i));
} else if (i == 1) {
modmap.setLatitude(arrcoord.getDouble(i));
}
}
JSONObject objprop = objfeatures.getJSONObject("properties");
modmap.setSiteid(objprop.getString("site_id"));
modmap.setNmsite(objprop.getString("nama_site"));
modmap.setTipetower(objprop.getString("nm_type"));
modmap.setTipesite(objprop.getString("nm_site_type"));
modmap.setTinggitower(objprop.getDouble("tinggi_tower"));
modmap.setKota(objprop.getString("nm_kota"));
modmap.setJmtenant(objprop.getInt("jml_tenant"));
limap.add(modmap);
}
for (int j = 0; j < arrcoord.length(); j++) {
if(j == 0){
modmap.setLongtitude(arrcoord.getDouble(j));
} else if (j == 1) {
modmap.setLatitude(arrcoord.getDouble(j));
}
}
for (int j = 0; j < arrcoord.length(); j++) {
if(j == 0){
modmap.setLongtitude(arrcoord.getDouble(i));
} else if (j == 1) {
modmap.setLatitude(arrcoord.getDouble(i));
}
}
for(int j=0;j
在if语句中使用j
变量而不是i