定义统一的Json结构

定义统一的Json结构
* 由于封装的Json数据的类型不确定,所以在定义统一的json结构时,我们需要用到泛型。
* 统一的json结构中属性包括:数据、状态码、提示信息即可。
* 构造方法应该有默认的返回结构和用户指定的返回结构

 

package com.wei.demo01.entity;

/**
 * 定义统一的Json结构
 * 由于封装的Json数据的类型不确定,所以在定义统一的json结构时,我们需要用到泛型。
 * 统一的json结构中属性包括:数据、状态码、提示信息即可。
 * 构造方法应该有
 * @param <T> 泛型
 */
public class JsonResult <T>{
    private T data;
    private String code;
    private String msg;

    /**
     * 若没有数据返回,默认的状态码是0,提示信息为:操作成功!
     */
    public JsonResult(){
        this.code = "0";
        this.msg = "操作成功";
    }
    /**
     * 若没有数据返回,可以人为指定状态码和提示信息
     *
     */
    public JsonResult(String code,String msg){
        this.code=code;
        this.msg=msg;
    }

    /**
     * 有数据返回值,状态码为0,默认提示信息为:操作成功!
     */
    public JsonResult(T data){
        this.data=data;
        this.code="0";
        this.msg = "操作成功";
    }
    /**
     * 有数据返回值,状态码为0,人为指定提示信息
     */
    public JsonResult(T data,String msg){
        this.data=data;
        this.code = "0";
        this.msg=msg;
    }
}
package com.wei.demo01.controller;

//import com.wei.demo01.entity.JsonResult;
import com.wei.demo01.entity.JsonResult;
import com.wei.demo01.entity.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 统一Json返回值结构
 */
@RestController
@RequestMapping("/jsonresult")
public class JsonController {
    @GetMapping("/user")
//    public User getUser() {
//        return new User(10, "你好", "11");
//    }
    public JsonResult<User> getUser(){
        User user = new User(10,"haha","11");
        return new JsonResult<>(user);
    }

    @GetMapping("/list")
//    public List<User> getUSerList() {
//        List<User> list = new ArrayList<>();
//        User user = new User(10, "你好", "11");
//        User user1 = new User(12, "啊好", "11");
//        list.add(user);
//        list.add(user1);
//        return list;
//    }
    public JsonResult<List<User>> getUserList(){
        List<User> list = new ArrayList<>();
        User user = new User(10, "你好", "11");
        User user1 = new User(12, "啊好", "11");
        list.add(user);
        list.add(user1);
        return new JsonResult<>(list, "获取用户列表成功!");
    }

    @GetMapping("/map")
//    public Map<String, Object> getMap(){
//        Map<String, Object> map = new HashMap<>(3);
//        User user = new User(1, "魏榕汘", "12");
//        map.put("作者信息", user);
//        map.put("博客地址", "httP://www.baidu.com");
//        map.put("公众号", "你好");
//        map.put("B站", "你哈哈");
//        return map;
//
//    }
    public JsonResult<Map<String,Object>>  getMap(){
        Map<String, Object> map = new HashMap<>(3);
        User user = new User(1, "魏榕汘", "12");
        map.put("作者信息", user);
        map.put("博客地址", "httP://www.baidu.com");
        map.put("公众号", "你好");
        map.put("B站", "你哈哈");
        return new JsonResult<>(map);
    }
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阳光不锈@

如果有帮助的话,打赏一下吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值