前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Json】json在SpringBoot中的格式转换

【Json】json在SpringBoot中的格式转换

作者头像
瑞新
发布2020-12-07 10:33:46
6.3K0
发布2020-12-07 10:33:46
举报
文章被收录于专栏:用户3288143的专栏

@RestController自动返回json

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
    /**
     * json 三种实现方法
     * 1 @RestController自动返回json
     */
    @GetMapping("/json")
    public Student getjson() {
        Student student = new Student("bennyrhys",158
        );
        return student;
    }

@ResponseBody+@Controller 组合返回json

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
//@RestController
    @Controller
// 类名上方


    @GetMapping("/json")
    @ResponseBody
    public Student getjson() {
        Student student = new Student("bennyrhys",158
        );
        return student;
    }

在pom.xml 添加 阿里巴巴json jar包

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
//@RestController
    @Controller
// 类名上方


@GetMapping("/fastjson")
    public void fastjson(HttpServletResponse response){
        Student student = new Student("bennyrhys",158);
        String data = JSON.toJSONString(student);


        try {
            sendJsonData(response, data);
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    protected void sendJsonData(HttpServletResponse response, String data) throws IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        out.println(data);
        out.flush();
        out.close();
    }

fastjson深入理解 fastJson对于json格式字符串的解析主要用到了一下三个类:

JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换。 JSONObject:fastJson提供的json对象。 JSONArray:fastJson提供json数组对象。

toJSONString() 和 parseObject() 方法来将 Java 对象与 JSON 相互转换。调用toJSONString方 法即可将对象转换成 JSON 字符串,parseObject 方法则反过来将 JSON 字符串转换成对象。

允许转换预先存在的无法修改的对象(只有class、无源代码)。 Java泛型的广泛支持。 允许对象的自定义表示、允许自定义序列化类。 支持任意复杂对象(具有深厚的继承层次和广泛使用的泛型类型)。

JSONObject 当成一个 Map<String,Object> 来看 JSONArray当成一个 List 来看 JSON.toString(Object)----> return String JSON.parse(String)----->return Object

String 和 JsonObject 和 JsonArray之间转化 https://www.cnblogs.com/ljangle/p/11047111.html

1、String转JSONObject 或 JSONArray JSONObject jSONObject = JSONObject.parseObject(String); JSONArray jsonArray= JSONArray.parseArray(String);

2、JSONObject中的数组提取为JSONArray 提取Result对应的数组 JSONArray jsonArray= jsonObject.getJSONArray(“Result”);

3、JSONArray提取为JSONObject JSONObject jsonObject = jsonArray.getJSONObject(0);

在这里插入图片描述
在这里插入图片描述

4、JSONObject获取value

代码语言:javascript
复制
1、object.getString("key")

2、object.get("key")

JSONArray jsonArray= jsonObject.getJSONArray(“Result”); JSONObject jsonObject = jsonArray.getJSONObject(0);

封装json在entiy的body返回msg

ResponseEntity可以定义返回的HttpStatus(状态码)和HttpHeaders(消息头:请求头和响应头)

HttpStatus(状态码)https://blog.csdn.net/csdn1844295154/article/details/78980174

HttpHeaders(消息头:请求头和响应头)https://www.cnblogs.com/honghong87/articles/6941436.html

具体查看这些内容的用法可以参考https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Content-Disposition

ResponseEntity返回body

JsonResponseServlet

代码语言:javascript
复制
import java.io.Serializable;

public class JsonResponse<T> implements Serializable {
    private Integer code;
    private String msg;
    private T result;

    public JsonResponse() {
    }

    public JsonResponse(Integer code, String msg, T result) {
        this.code = code;
        this.msg = msg;
        this.result = result;
    }

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public T getResult() {
        return result;
    }

    public void setResult(T result) {
        this.result = result;
    }

    public static class JsonResponseUtil {
        public static JsonResponse<Object> ok() {
            return ok(null);
        }

        public static <T> JsonResponse<T> ok(T result) {
            return new JsonResponse<>(0, "", result);
        }

        public static JsonResponse<Object> error(Integer code) {
            return error(code, "error!");
        }

        public static JsonResponse<Object> error(String msg) {
            return error(-1, msg);
        }

        public static JsonResponse<Object> error(Integer code, String msg) {
            return new JsonResponse<>(code, msg, null);
        }
    }
}

controller

代码语言:javascript
复制
        return ResponseEntity.ok(JsonResponse.JsonResponseUtil.ok(source));
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/11/11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • @RestController自动返回json
  • @ResponseBody+@Controller 组合返回json
  • 在pom.xml 添加 阿里巴巴json jar包
  • 封装json在entiy的body返回msg
    • JsonResponseServlet
      • controller
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档