Android 我的错误是JSONArray无法转换为JSONObject
我是JSON新手,遇到以下异常:Android 我的错误是JSONArray无法转换为JSONObject,android,Android,我是JSON新手,遇到以下异常: org.json.JSONArray无法在try部分的第一行转换为JSONObject 请帮我取下这个。这是我的密码: public void sendjsonrequest(){ JsonObjectRequest jsonObjectRequest=new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
org.json.JSONArray无法在try部分的第一行转换为JSONObject
请帮我取下这个。这是我的密码:
public void sendjsonrequest(){
JsonObjectRequest jsonObjectRequest=new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONArray jsonArray=response.getJSONArray("dish");
for(int i=0; i<jsonArray.length();i++) {
JSONObject dishes = jsonArray.getJSONObject(i);
int idd = dishes.getInt("id");
String latitude = dishes.getString("latitude");
String longitude = dishes.getString("longitude");
String snip = dishes.getString("snippet");
id.append(idd+","+latitude+","+longitude+","+snip+""); // id.setText(idd);
// lat.setText(latitude);
// lon.setText(longitude);
// snippet.setText(snip);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
},new Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
});
rq.add(jsonObjectRequest);
}
请尝试以下代码:
将参数中的响应更改为JSONArray
,而不是JSONObject
。
将中的JsonObjectRequest更改为JsonArrayRequest
您的JSON:
[{"id":"3","latitude":"Latitude: 11.913859799999999","longitude":"Longitude: 79.8144722","snippet":"I am Here"}]
代码:
public void sendjsonrequest(){
JsonArrayRequest jsonObjectRequest=new JsonArrayRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONArray jsonArray) { // Change it here
try {
for(int i=0; i<jsonArray.length();i++) {
JSONObject dishes = jsonArray.getJSONObject(i);
int idd = dishes.getInt("id");
String latitude = dishes.getDouble("latitude") +"";
String longitude = dishes.getDouble("longitude") + "";
String snip = dishes.getString("snippet");
id.append(idd+","+latitude+","+longitude+","+snip+""); // id.setText(idd);
// lat.setText(latitude);
// lon.setText(longitude);
// snippet.setText(snip);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
},new Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
});
rq.add(jsonObjectRequest);
}
public void sendjsonrequest(){
JsonArrayRequest jsonObjectRequest=新的JsonArrayRequest(Request.Method.GET,url,null,new Response.Listener()){
@凌驾
public void onResponse(JSONArray JSONArray){//在此处更改
试一试{
对于(int i=0;我在你的JSON中没有看到任何dish
字段。dish没有以give JSON格式显示。是的,实际上我将其更改为我的url名称。但是在收到相同的错误之前,我仍然没有收到任何消息。你能发布准确的响应字符串吗?并在logspublic void sendjsonrequest()中发布你收到的异常{JsonObjectRequest JsonObjectRequest=new JsonObjectRequest(Request.Method.GET,url,null,new Response.Listener(){@Override public void onResponse(JSONObject Response){try{JSONArray JSONArray=new JSONArray(Response.toString());JSONObject disks=jsonArray.getJSONObject(0);将这一行:Log.d(“response”,response+”);放在“try{”之后,并从logCat将该字符串写到这里
public void sendjsonrequest(){
JsonArrayRequest jsonObjectRequest=new JsonArrayRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONArray jsonArray) { // Change it here
try {
for(int i=0; i<jsonArray.length();i++) {
JSONObject dishes = jsonArray.getJSONObject(i);
int idd = dishes.getInt("id");
String latitude = dishes.getDouble("latitude") +"";
String longitude = dishes.getDouble("longitude") + "";
String snip = dishes.getString("snippet");
id.append(idd+","+latitude+","+longitude+","+snip+""); // id.setText(idd);
// lat.setText(latitude);
// lon.setText(longitude);
// snippet.setText(snip);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
},new Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
});
rq.add(jsonObjectRequest);
}