将JSON字符串处理为Java数组

将JSON字符串处理为Java数组,java,php,arrays,json,Java,Php,Arrays,Json,我有这个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.0

我有这个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));
    }
  }
}
{
JSONArray jdata=post.getserverdata(postparameters2send,URL\u connect);
if(jdata!=null&&jdata.length()>0){
JSONObject json_数据;
ArrayList lugares=新的ArrayList();
json_data=jdata.getJSONObject(0);
logstatus=json_data.getInt(“logstatus”);
lugaresCercanos=json_data.getJSONArray(“lugares_cercanos”);
对于(int i=0;i
试试这个:

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");

  ---------
}
JSONObject j=jdata.getJSONObject(“obj”);
杰索纳雷·贾雷=j.Get杰索纳雷(“卢格雷斯·塞尔卡诺斯”);
int len=jArray.length();
对于(int i=0;i请尝试以下方法:

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");

  ---------
}
JSONObject j=jdata.getJSONObject(“obj”);
杰索纳雷·贾雷=j.Get杰索纳雷(“卢格雷斯·塞尔卡诺斯”);
int len=jArray.length();
对于(inti=0;i),顶层结构(即您发布的JSON字符串)不是数组,而是对象

我不知道你的
post.getserverdata
方法做什么,如果有一个版本可以返回你可以使用的JSONObject:

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

...
顶层结构(即您发布的JSON字符串)不是数组,而是对象

我不知道你的
post.getserverdata
方法做什么,如果有一个版本可以返回你可以使用的JSONObject:

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

...
显示此错误:

解析数据org.json.JSONException:Value{“lugares_cercanos”:[{“nombre”:“Laguna de Yaguarcocha”,“distancea”:“868686205.000”},{“nombre”:“Swissotel Quito”,“distancea”:“8728811.000”},{“nombre”:“Rio Amazons”,“distancea”:“8729333.000”},“,“logstatus”:“1}类型的org.json.JSONObject无法转换为JSONArray

显示此错误:


分析数据org.json.JSONException时出错:Value{“lugares_cercanos”:[{“nombre”:“Laguna de Yaguarcocha”,“distancia”:“8686205.000”},{“nombre”:“Swissotel Quito”,“distancia”:“8728811.000”},{“nombre”:“Rio Amazona”,“distancia”:“8729333.000”},“logstatus”:“1”}无法将org.json.JSONObject类型转换为JSONArray

那么在尝试代码之后会发生什么?那么在尝试代码之后会发生什么?