Java 为什么字符串不转换为JsonArray
我正在为Android应用程序编写代码,并在手机上运行它 (Pie版本),我使用Volley库连接到服务器。 当我向服务器(JsonArrayRequest)发送请求时,应用程序会记录日志 负反应 它面临着这个错误Java 为什么字符串不转换为JsonArray,java,php,android,android-volley,Java,Php,Android,Android Volley,我正在为Android应用程序编写代码,并在手机上运行它 (Pie版本),我使用Volley库连接到服务器。 当我向服务器(JsonArrayRequest)发送请求时,应用程序会记录日志 负反应 它面临着这个错误 com.android.volley.ParseError: org.json.JSONException: Value <html> <body> <script of type java.lang.String cannot be converte
com.android.volley.ParseError: org.json.JSONException: Value <html>
<body> <script of type java.lang.String cannot be converted to JSONArray
com.android.volley.ParseError:org.json.JSONException:Value
爪哇:
JsonArrayRequest JsonArrayRequest=new
JsonArrayRequest(Request.Method.GET,URL,null,new
Response.Listener(){
@凌驾
公共void onResponse(JSONArray响应){
Log.e(“Adrom Response1:”,response.toString();
对于(int i=0;i
您试图发送到端点的确切json是什么?非常清楚:您的字符串以
开头。你会得到一个HTML回复;看看里面是什么。这可能是一条错误消息,或者您可能需要指定一个Accept
标题。(还要注意,大多数Java REST库会自动为您打开一个真正的Java对象,比如City
,而不是让您自己处理JSON*
)您可以使用此链接查看内容您正试图发送到端点的确切json是什么?非常清楚:您的字符串以
开头。你会得到一个HTML回复;看看里面是什么。这可能是一条错误消息,或者您可能需要指定一个Accept
标题。(还要注意,大多数Java REST库会自动为您打开一个真正的Java对象,比如City
,而不是让您自己处理JSON*
。)您可以使用此链接查看内容
<?php
include "connect.php";
$query="SELECT * FROM city";
$res=$connect->prepare($query);
$res->execute();
$products=array();
while($row=$res->fetch(PDO::FETCH_ASSOC)){
$record=array();
$record["id"]=$row["id"];
$record["title"]=$row["city"];
$products[]=$record;
}
echo json_encode($products);
?>
JsonArrayRequest jsonArrayRequest = new
JsonArrayRequest(Request.Method.GET, URL, null, new
Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
Log.e("Adrom Response1: ", response.toString());
for (int i = 0; i < response.length(); i++) {
try {
JSONObject jsonObject = response.getJSONObject(i);
String city = jsonObject.getString("title");
cities.add(city);
} catch (JSONException e) {
Log.e("Adrom Response2: ", e.toString());
e.printStackTrace();
}
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("Adrom Response3: ", error.toString());
}
});
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(jsonArrayRequest);