我从网络上获取数据以显示所有学生名单,但遇到此错误。如何解决?
错误:“ com.android.volley.ParseError:org.json.JSONException:java.lang.String类型的值br无法转换为JSONArray”
这是我的代码。
MainActivity.java
public class MainActivity extends AppCompatActivity {
String urlGetData = "http://demokl.atwebpages.com/getdata.php";
private void GetData(String url) {
RequestQueue requestQueue = Volley.newRequestQueue(this);
JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Request.Method.GET, url, null,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
// Get Json object from php page
studentArrayList.clear();
for (int i = 0; i < response.length(); i++) {
try {
JSONObject jsonObject = response.getJSONObject(i);
studentArrayList.add(new Student(jsonObject.getInt("ID"),
jsonObject.getString("FullName"),
jsonObject.getInt("YearOfBirth"),
jsonObject.getString("Address")));
} catch (JSONException e) {
e.printStackTrace();
}
}
studentAdapter.notifyDataSetChanged();
}
},
new Response.ErrorListener() { // Error link or server
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.this, "Error !", Toast.LENGTH_SHORT).show();
Log.d("AAA", error.toString());
}
});
requestQueue.add(jsonArrayRequest);
}
getdata.php
<?php
require "dbCon.php";
// Get All data in student table
$query = "SELECT * FROM studenttable"; // student table
$data = mysqli_query($connect, $query);
// Create class Student
class Student {
function Student($id, $fullname, $yearOfBirth, $address) {
$this -> ID = $id;
$this -> FullName = $fullname;
$this -> YearOfBirth = $yearOfBirth;
$this -> Address = $address;
}
}
// Push each element to array
$arrayStu = array();
while ($row = mysqli_fetch_assoc($data)) {
array_push($arrayStu, new Student($row['id'], $row['fullname'], $row['yearofbirth'], $row['address']));
}
// Export array to JSON data
echo json_encode($arrayStu);
?>
dbCon.php
<?php
$connect = mysqli_connect("fdb26.awardspace.net", "2953966_demo", "khanhlee93", "2953966_demo"); // (server, name, pass, dbname)
mysqli_query($connect, "SET NAMES 'utf8'");
?>
答案 0 :(得分:0)
更改请求类型自
JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Request.Method.GET, url, null,
new Response.Listener<JSONArray>()
收件人
StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>()