请教下如何返回一个自定义的json

比如我的model是这样的结构

public class User {
    private id;
    private username;
    private password;
    private email;
}

我想在返回的json里加一个avatar的字段,把email通过md5加密后返回给前端。最后希望返回的json结果。

{
    "id": 1,
    "username": "aaa",
    "avatar": "xxx"
}

这个方法就很多了呀。

你可以从新定义一个Bean,把原始属性Copy(使用BeanUtils)过去后,改改。

BeanUtils.copyProperties(Object source, Object target)

可以先把原始对象序列化为Json对象,然后在对属性进行修改

User user = null;
Gson gson = new Gson();
JsonObject jsonObject = gson.toJsonTree(user).getAsJsonObject();
jsonObject.addProperty("avatar", "...");  // 头像
jsonObject.addProperty("email", md5(user.email)); // 对email用md5加密
// 最终的json
String json = jsonObject.toString();
2 Likes

谢谢。