来自django的背景,在dw上不是很强大,请放轻松!

我有一个资源,其发布数据如下:

    @POST
    @Path("changestatus/{status}")
    @Consumes(MediaType.APPLICATION_JSON)
    public Response changeStatus(String dataString,
                                            @PathParam("status") Status status) {

        HashMap<String, Object> responseMessage = new HashMap<>();
        Response.Status respStatus = Response.Status.OK;
        //    --- ugly stuff to clean things hence the question!!!
        // dataString = dataString.replace("dataString=", "").replace("%2C", ",");
        // do stuffs


现在,如果我将输入POST参数传递为abcd,tklmj,1234cd,则资源将把dataString作为dataString=abcd%2Ctklmj%2C1234cd

dataString的值在字面上有dataString字,以及,转换为%2C的方式,我如何反序列化它们以获得原始输入?如上,从其值中删除dataString%2C

阿贾克斯电话

            var target_url = statusURL + status_text;
            data = {"dataString": all_data}
            $.ajax({
                type: "POST",
                url: target_url,
                data: data,
                success: function(data){
                    console.log(data)
                }
            });


我使用的是dropwizard 1.2.2版。

最佳答案

使用HashMap处理来自正文的数据:

@POST
@Path("changestatus/{status}")
@Consumes(MediaType.APPLICATION_JSON)
public Response changeStatus(HashMap data,
                         @PathParam("status") Status status) {


获得价值

 String param1 = (String) data.get(<your param name>)

10-08 05:44