通过SQL为我提供记录列表的PHP返回以下内容:
$result = $con->query($query);
for ($set = array (); $row = $result->fetch_assoc(); $set[] = json_encode($row));
print_r($set);
RESULTADO
Array
(
[0] => {"id":"8783","nombre":"pepe","username":"demo"}
[1] => {"id":"8784","nombre":"garcia","username":"demo"}
)
现在作为Android与Volley的流程,我有以下但显然不起作用:
JsonArrayRequest request = new JsonArrayRequest(URL_2,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray jsonArray) {
for(int i = 0; i < jsonArray.length(); i++) {
try {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String nombre = jsonObject.getString("name");
Log.e("nombre", nombre);
mEntries.add(jsonObject.toString());
}
catch(JSONException e) {
mEntries.add("Error: " + e.getLocalizedMessage());
}
ERROR:
com.android.volley.ParseError:org.json.JSONException:Value Array of 类型java.lang.String无法转换为JSONArray
我通过在try中只留下以下内容来修改排球,并且它会抛出相同的错误
try {
Integer cantidad = jsonArray.length();
Log.e("cantidad: ", cantidad.toString());
}
我尝试使用它并继续相同的错误
public void onResponse(JSONArray response) {
for(int i = 0; i < response.length(); i++) {
try {
Log.i("SUCCESS", response.toString());
}
.....
答案 0 :(得分:1)
更改您的php文件
$result = $con->query($query);
json_encode(["result" => $result]);
并在onResponse
添加:
public void onResponse(JSONArray jsonArray) {
JsonArray myData = jsonArray.getJSONArray(0);