java - 将 JSON 字符串处理为 Java 数组

标签 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.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));
    }
  }
}

最佳答案

试试这个:

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

  ---------
}

关于java - 将 JSON 字符串处理为 Java 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14273105/

相关文章:

java - for 进入线程的进度对话框

php - 截断和插入问题

php多维数组,存在则查找更新,不存在则插入

java - 如何在java中读取文本文件并将行分配给变量

java - 如何在运行时知道 POJO 的 ID (@GeneratedValue)

java - 寻找一种智能且快速的搜索算法

php - register_shutdown_function() php

php - Action Script 3 使用 Base64 解码从 mysql 加载图像,图像加载损坏

ios - 如何在 Swift 3 中按字母顺序排列对象数组?

java - 无法使用 Hibernate 创建实体。 SQL语法异常