SpringBoot 接收并返回 JSON 数据

  在一个服务编写中,遇到了这种问题,前端使用了jQuery + Ajax,后端使用 SpringBoot,因为对之前所用的知识的遗忘,在此做一下记录。

前端

$.ajax({
                type: "POST",
                url: "/xxxxx",
                contentType: "application/json; charset=utf-8",
                data: "{ \"xxxxx\":" + ["xxx","xxx"] + "}",
                success: function (data) {
                    $("#result").html(data);
                },
                error: function (data) {

                }
            });

注意 contentType属性必须设置为 “application/json; charset=utf-8”, 如果忽略, 这发起的请求用form表单方式,后端是会报错的。 jQuery 的 dataType 属性, 有的人以为是 发送数据的类型,其实是接受数据的类型

后端

    public String xxxxx(@RequestBody Map map) {
        List<String> list = (List) map.get("xxxxx");

        ...

        Map<String, Object> resMap = new HashMap<String, Object>();
        GsonBuilder gson = new GsonBuilder();
        gson.disableHtmlEscaping();
        resMap.put("xxx", "0");
        resMap.put("yyy", resList);
        return gson.create().toJson(resMap);
    }

注意 在后端接受的时候,需要使用 “@RequestBody” 注解, 在返回json的处理方面,我使用了 Gson组件,相应的建议使用 GsonBuilder来构建 json 数组。因为 其 disableHtmlEscaping() 方法可以处理数据,使得避免一些字符被转义的情况发生。

0

发表评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.