请问springboot 要怎么修改这种格式的json

{
  "code": 0,
  "msg": "",
  "count": 29,
  "data": [{
    "id": 10000,
    "username": "user-0",
    "sex": "女",
    "city": "城市-0",
    "sign": "签名-0",
    "experience": 255,
    "logins": 24,
    "wealth": 82830700,
    "classify": "作家",
    "score": 57
  }, {
    "id": 10001,
    "username": "user-1",
    "sex": "男",
    "city": "城市-1",
    "sign": "签名-1",
    "experience": 884,
    "logins": 58,
    "wealth": 64928690,
    "classify": "词人",
    "score": 27
  }, {
    "id": 10002,
    "username": "user-2",
    "sex": "女",
    "city": "城市-2",
    "sign": "签名-2",
    "experience": 650,
    "logins": 77,
    "wealth": 6298078,
    "classify": "酱油",
    "score": 31
  }, {
    "id": 10003,
    "username": "user-3",
    "sex": "女",
    "city": "城市-3",
    "sign": "签名-3",
    "experience": 362,
    "logins": 157,
    "wealth": 37117017,
    "classify": "诗人",
    "score": 68
  }, {
    "id": 10029,
    "username": "user-29",
    "sex": "男",
    "city": "城市-29",
    "sign": "签名-29",
    "experience": 647,
    "logins": 107,
    "wealth": 97450636,
    "classify": "酱油",
    "score": 27
  }]
}

请问springboot 要怎么返回这种格式的json 。
默认的只能返回一个data 中的

我想这样写,
clipboard.png

clipboard.png
但是controller不会写,不知道怎么搜了。。

阅读 2.5k
3 个回答

使用java的泛型,给个例子给你.
getter,setter这些我就不写了



public class Result<T> {
    private int code;
    private String msg;
    private T data;

    //getter...
    //setter...
}

你要理解,JSON 对象含义,比如 data":[]其实,datakeydatavalue 为一个数组[]的键值对。
数组里面每一个元素又是一个对象。当然我们用 List 操作起来更方便。 所以如下定义 JAVA 类,Spring 会帮你序列化成对应的JSON

public class Api{
private int code;
private String msg;
private List<User> data;
}
public class User {
private int id;
private String username;
}

小编为订阅号「码匠笔记」号主,先后就职于 ThoughtWorks、阿里巴巴等互联网公司的经验分享,包含但不限于 JAVA、并发编程、性能优化、架构设计、小程序、开源软件等。有兴趣可以关注一波,一起学习、讨论。

使用@ControllerAdvice与ResponseBodyAdvice就可以了。Controller层完全不需要关心如何拼成你这种json。都是在advice中处理。
或者使用aop。拦截所有controller或者部分controller。在aop中处理。
这两种都比在业务代码或者controller层直接包装返回值要好,重构时不需要每一个方法都改。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题