JsonObjectRequest 在 ErrorResponse 上总是 returns
JsonObjectRequest Always returns on ErrorResponse
JsonObjectRequest 总是 returns onErrorResponse 在 android
public void clickFind(final View view) {
EditText find = (EditText) findViewById((R.id.editText));
// String
web = "http://api.tvmaze.com/search/shows?q=" + find.getText();
JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, web, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONArray jsonArray = response.getJSONArray("value");
lv = (ListView) findViewById(R.id.listView);
RowItem ri = null;
URL newurl = null;
for (int i = 0; i < jsonArray.length(); i++) {
try {
newurl = new URL(jsonArray.getJSONObject(i).getString("image"));
} catch (MalformedURLException e) {
e.printStackTrace();
}
ri = new RowItem(newurl,jsonArray.getJSONObject(i).getString("name")
,jsonArray.getJSONObject(i).getString("summary"));
}
CustomListViewAdapter adapter = new CustomListViewAdapter(view.getContext(),R.layout.cf, ri);
lv.setAdapter(adapter);
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Context context = view.getContext();
Toast.makeText(context, "error to upload "+web, Toast.LENGTH_SHORT).show();
}
});
queue.add(request);
} }
例如:
http://api.tvmaze.com/search/shows?q=bob
带来回复,但 运行 of6 android phone 总是落入错误
有谁知道代码有什么问题吗?
引用文档,getJSONArray
Returns the value mapped by name if it exists and is a JSONArray, or
throws otherwise.
并检查来自 api 端点 "value" 的响应似乎不存在。我希望我没记错,但我找不到任何名为 "value".
的 属性
来自 http://api.tvmaze.com/search/shows?q=bob 的响应是一个 JSON 数组而不是 JSON 对象。所以你需要像这样使用 JsonArrayRequest
而不是 JsonObjectRequest
-
JsonArrayRequest request = new JsonArrayRequest(Request.Method.GET, web,new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
try {
for(int i = 0; i < response.length(); i++){
JSONObject obj = response.getJSONObject(i);//This is your Json object which you can parse now.
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Context context = view.getContext();
Toast.makeText(context, "error to upload "+web, Toast.LENGTH_SHORT).show();
}
});
JsonArrayRequest request = new JsonArrayRequest(Request.Method.GET, web, null, new Response.Listener<JSONArray>() {
public void onResponse(JSONArray response) {
try {
whichList++;
lv = (ListView) findViewById(R.id.listView);
RowItem ri[] = new RowItem[response.length()];
for (int i = 0; i < response.length(); i++) {
JSONObject jsonArray = response.getJSONObject(i).getJSONObject("show");
ri[i] = new RowItem(jsonArray.getString("id"), "", "", jsonArray.getJSONObject("image").getString("medium"), jsonArray.getString("name")
, jsonArray.getString("summary"));
}
ArrayAdapterItem adapter = new ArrayAdapterItem(view.getContext(), R.layout.cf, ri);
lv.setAdapter(adapter);
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Context context = view.getContext();
Toast.makeText(context, "error to upload " + web, Toast.LENGTH_SHORT).show();
}
});
queue.add(request);
}
JsonObjectRequest 总是 returns onErrorResponse 在 android
public void clickFind(final View view) {
EditText find = (EditText) findViewById((R.id.editText));
// String
web = "http://api.tvmaze.com/search/shows?q=" + find.getText();
JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, web, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONArray jsonArray = response.getJSONArray("value");
lv = (ListView) findViewById(R.id.listView);
RowItem ri = null;
URL newurl = null;
for (int i = 0; i < jsonArray.length(); i++) {
try {
newurl = new URL(jsonArray.getJSONObject(i).getString("image"));
} catch (MalformedURLException e) {
e.printStackTrace();
}
ri = new RowItem(newurl,jsonArray.getJSONObject(i).getString("name")
,jsonArray.getJSONObject(i).getString("summary"));
}
CustomListViewAdapter adapter = new CustomListViewAdapter(view.getContext(),R.layout.cf, ri);
lv.setAdapter(adapter);
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Context context = view.getContext();
Toast.makeText(context, "error to upload "+web, Toast.LENGTH_SHORT).show();
}
});
queue.add(request);
} }
例如: http://api.tvmaze.com/search/shows?q=bob
带来回复,但 运行 of6 android phone 总是落入错误 有谁知道代码有什么问题吗?
引用文档,getJSONArray
Returns the value mapped by name if it exists and is a JSONArray, or throws otherwise.
并检查来自 api 端点 "value" 的响应似乎不存在。我希望我没记错,但我找不到任何名为 "value".
的 属性来自 http://api.tvmaze.com/search/shows?q=bob 的响应是一个 JSON 数组而不是 JSON 对象。所以你需要像这样使用 JsonArrayRequest
而不是 JsonObjectRequest
-
JsonArrayRequest request = new JsonArrayRequest(Request.Method.GET, web,new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
try {
for(int i = 0; i < response.length(); i++){
JSONObject obj = response.getJSONObject(i);//This is your Json object which you can parse now.
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Context context = view.getContext();
Toast.makeText(context, "error to upload "+web, Toast.LENGTH_SHORT).show();
}
});
JsonArrayRequest request = new JsonArrayRequest(Request.Method.GET, web, null, new Response.Listener<JSONArray>() {
public void onResponse(JSONArray response) {
try {
whichList++;
lv = (ListView) findViewById(R.id.listView);
RowItem ri[] = new RowItem[response.length()];
for (int i = 0; i < response.length(); i++) {
JSONObject jsonArray = response.getJSONObject(i).getJSONObject("show");
ri[i] = new RowItem(jsonArray.getString("id"), "", "", jsonArray.getJSONObject("image").getString("medium"), jsonArray.getString("name")
, jsonArray.getString("summary"));
}
ArrayAdapterItem adapter = new ArrayAdapterItem(view.getContext(), R.layout.cf, ri);
lv.setAdapter(adapter);
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Context context = view.getContext();
Toast.makeText(context, "error to upload " + web, Toast.LENGTH_SHORT).show();
}
});
queue.add(request);
}