android解析jsonObject与齐射

时间:2015-02-16 08:42:54

标签: android json gson android-volley http-get

我第一次尝试用齐射来解析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

对于我的选择我在解析儿子时出了点问题。我做错了什么?

2 个答案:

答案 0 :(得分:1)

从JSONObject响应中获取JSONArray有一个小错误。你实际上忘了提到数组名称items

<强>错误:

JSONArray mainjsonArray=response.getJSONArray("");

<强>正确:

JSONArray mainjsonArray=response.getJSONArray("Items");

答案 1 :(得分:0)

使用Items代替“”从回复JSONArray获取商品JSONObject

JSONArray mainjsonArray=response.getJSONArray("Items");