我第一次尝试用齐射来解析json。我找到了一些例子,我学会了如何使用它。 但我有一个问题.... 我喜欢这个json
{
"Items ":
[
{
"Branch" :"mybranch",
"City" : "London"
},
{
"Branch" :"mybranch1",
"City" : "Paris"
},
{
"Branch" :"mybranch2",
"City" : "NY"
}
]
}
这是我的解析器代码
private void makeGetDictionaries13Request() {
showpDialog();
JsonObjectRequest jsonObjReq = new JsonObjectRequest(Method.GET,
urlgetbranchlist, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.e("TAG", response.toString());
try {
JSONArray mainjsonArray=response.getJSONArray("");
for (int i = 0; i < mainjsonArray.length(); i++) {
JSONObject j_object=mainjsonArray.getJSONObject(i);
System.out.println();
Log.e("City", j_object.getString("City"));
}
} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(),
"Error: " + e.getMessage(),
Toast.LENGTH_LONG).show();
}
hidepDialog();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d("TAG", "Error: " + error.getMessage());
Toast.makeText(getApplicationContext(),
error.getMessage(), Toast.LENGTH_SHORT).show();
// hide the progress dialog
hidepDialog();
}
});
// Adding request to request queue
AppController.getInstance().addToRequestQueue(jsonObjReq);
jsonObjReq.setRetryPolicy(new DefaultRetryPolicy(
15000,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
// Adding request to request queue
AppController.getInstance().addToRequestQueue(jsonObjReq);
}
我可以在日志中显示jsonobject结果,但我有排球错误
no value for
对于我的选择我在解析儿子时出了点问题。我做错了什么?
答案 0 :(得分:1)
从JSONObject响应中获取JSONArray有一个小错误。你实际上忘了提到数组名称items
。
<强>错误:强>
JSONArray mainjsonArray=response.getJSONArray("");
<强>正确:强>
JSONArray mainjsonArray=response.getJSONArray("Items");
答案 1 :(得分:0)
使用Items
代替“”从回复JSONArray
获取商品JSONObject
:
JSONArray mainjsonArray=response.getJSONArray("Items");