【发布时间】:2016-05-08 11:16:25
【问题描述】:
我找不到任何有关从 PHP 将数组解析到我的 android 应用程序的资源。我正在使用 Volley 来处理连接。
目前,我在 Web 服务器上的 PHP 脚本中有一个数组,其中包含与数据库的连接,该数据库将来自 MySQL 查询的数据放入数组中。
$latitude = array (
//Code for array here
);
$longitude = array (
//Code for array here
);
我可以正常连接到脚本,但无法弄清楚如何将 PHP 中的数组中的每个元素获取到我的 mainActivity.java 文件中的数组中。
Java 代码抛出异常,提示“纬度没有价值” 我理解这一点的方式是因为“纬度”也试过“$纬度”不是数组的名称,而是变量名。在PHP中我不认为有这样的名字。
是否有另一种方法可以将此数组的内容解析为 Java。 我试过的Java代码是:
String url = "urlHere";
JSONObject jObj = new JSONObject();
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, jObj,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try
{
JSONArray jsonArray = response.getJSONArray("$latitude");
//Loop through array
for (int i = 0; i<jsonArray.length(); i++)
{
JSONObject locationItem = jsonArray.getJSONObject(i);
String latitude = locationItem.getString("index1");
}
}
catch (Exception e)
{
//Error encountered.
//Log Error
Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
//Toast.makeText(getApplicationContext(), volleyError.toString(), Toast.LENGTH_LONG).show();
}
});
【问题讨论】:
-
是json对象里面的数组吗?因为如果不是,您需要使用 JsonArrayRequest 而不是 JsonObjectRequest。您能否发布您从服务器收到的 json 响应?
-
它正在拾取内容,无论如何它说: **com.android.volley.parseError: org.json.JSONEXCEPTION:Value("latitude":{"index1":100", " org.json.JSONOBJECT 类型的 index2","200"}) 无法转换为 JSONArray
-
哦,难怪,让我写一个答案
-
请从 "$latitude" 中删除 $,因为 JSON 键是 "latitude" 而不是 "$latitude" :)
标签: java android arrays android-volley