1

この配列はjsonコードにあります。

$info=array();
while($row = mysql_fetch_array($result,MYSQL_ASSOC)){
  array_push($info,$row);
}
$info;
$result_final->lugares_cercanos = $info;

これを印刷してください:

{"logstatus":"1","lugares_cercanos":[{"nombre":"Rio Amazonas","distancia":"5119.000"}{"nombre":"Swissotel Quito","distancia":"5823.000"}{"nombre":"Laguna de Yaguarcocha","distancia":"71797.000"}]}

さて、問題は、「lugares_cercanos」のフィールドをJava ArrayListに入れるにはどうすればよいですか??

私はこのコードで試します:

{
  JSONArray jdata=post.getserverdata(postparameters2send, URL_connect);
  if (jdata!=null && jdata.length() > 0){
    JSONObject json_data;
    ArrayList<NameValuePair> lugares = new ArrayList<NameValuePair>();

    json_data = jdata.getJSONObject(0);
    logstatus=json_data.getInt("logstatus");                        
    lugaresCercanos=json_data.getJSONArray("lugares_cercanos");     

    for (int i = 0; i < lugaresCercanos.length(); ++i) {
      JSONObject rec = lugaresCercanos.getJSONObject(i);
      String name = rec.getString("nombre");
      String dist = rec.getString("distancia");
      lugares.add(new BasicNameValuePair(name,dist));
    }
  }
}
4

3 に答える 3

1

これを試して:

JSONObject j = jdata.getJSONObject("obj");
JSONArray jArray = j.getJSONArray("lugares_cercanos");
int len = jArray .length(); 
for(int i=0; i <len; i++){
  String nombre = jArray .getJSONObject(i).optString("nombre");

  ---------
}
于 2013-01-11T06:56:26.747 に答える
0

最上位の構造(つまり、投稿したJSON文字列)は配列ではなくオブジェクトです。

post.getserverdata使用できるJSONObjectを返すことができるバージョンがある場合、メソッドが何をするのかわかりません。

JSONObject jdata=post.getserverdataobject(postparameters2send, URL_connect);
logstatus=jdata.getInt("logstatus");
lugaresCercanos=jdata.getJSONArray("lugares_cercanos");

...
于 2013-01-11T06:56:37.020 に答える
0

このエラーを表示します:

データ org.json.JSONException の解析エラー: 値 {"lugares_cercanos":[{"nombre":"Laguna de Yaguarcocha","distancia":"8686205.000"},{"nombre":"Swissotel Quito","distancia": "8728811.000"},{"nombre":"Rio Amazonas","distancia":"8729333.000"}],"logstatus":"1"} 型 org.json.JSONObject は JSONArray に変換できません

于 2013-01-13T07:01:48.540 に答える