Android上的嵌套JSON with volley

时间:2014-08-02 18:54:59

标签: android json android-volley

我想用一个REST API发布一个post请求。

这是代码。

StringRequest postRequest = new StringRequest(Request.Method.POST, URL, 
            new Response.Listener<String>() 
            {
                @Override
                public void onResponse(String response) {
                    // response
                    Log.e("Response", response);
                }
            }
        ) {     
         @Override
            protected Map<String, String> getParams() 
            {  
                    Map<String, String>  params = new HashMap<String, String>();  
                    params.put("id_market", "-1");  
                    params.put("id_store", "1");
                    Log.e("OPE", params.toString() );
                    return params;  
            }




}

我需要这样的东西。

JSONParams={
"header": {
    "id_market": -1,
    "id_user_from": 1,
},
"detail": [
    {
        "id_product": 1,
        "id_market": -1,

    }
]

}

那么,我如何使用凌空制作嵌套的JSON?

1 个答案:

答案 0 :(得分:1)

从您的代码示例中,您可以使用JsonObjectRequest代替StringRequest

final JSONObject jsonBody = new JSONObject("{\"header\": {\"id_market\": -1,\"id_user_from\": 1,},\"detail\": [{\"id_product\": 1,\"id_market\": -1,}]");
new JsonObjectRequest(URL, jsonBody, new Response.Listener<JSONObject>() { ... });

一个工作示例如下所示:

    try {
        String url = "";
        JSONObject jsonRequest = new JSONObject("{\"header\": {\"id_market\": -1,\"id_user_from\": 1,},\"detail\": [{\"id_product\": 1,\"id_market\": -1,}]");
        new JsonObjectRequest(Request.Method.POST, url, jsonRequest, new Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
                // Handle response
            }
        }, null /* Or handle error case */);
    } catch (JSONException e) {
        //Handle Excpetion
    }