gpt4 book ai didi

java - Jersey 自定义 JSON 响应

转载 作者:行者123 更新时间:2023-11-30 06:13:05 25 4
gpt4 key购买 nike

我正在使用 Jersey 设计 Web 服务,我需要始终向我的 JSON 响应添加一些自定义字段,类似于:

{
"result": "0"/"Error code",
"message": "Message returned by server",
"custom_field": here goes string or class values required
}

例如,我有 Token 和 User POJO 类:

public class Token {
private String token = null;

public Token (String token) {
this.token = token;
}

// getter and setter
}

public class User {
private String id= null;
private String name = null;
private String surname = null;
private String phone = null;

public User (String id, String name, String surname, String phone) {
this.id = id;
this.name = name;
this.surname = surname;
this.phone = phone;
}

// getters and setters
}

这是登录和获取用户网络服务:

@Path("/services")
@Produces(MediaType.APPLICATION_JSON)
public class HelloFromCxfRestService {

@POST
@Path("/login")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Token login(String login, String password){
//Logic
return token;
}

@POST
@Path("/get_user")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public String getUser (String id){
//Logic
return user; //in custom_field would be {"name":"myName", "surname":"mySurname", "phone":"myPhone"}
}
}

我如何才能返回我的自定义 JSON 结构与 POJO 相关?显然我应该可以将自定义值放在“结果”和“消息”中。

最佳答案

创建响应类:

public class Response<T> {
String result;
String message;
T customField;

public Response(String result, String message, T customField) {
this.result = result;
this.message = message;
this.customField = customField;
}
//getter setter
}

然后在 Controller 中:

@POST
@Path("/get_user")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response<User> getUser (String id){
//Logic
return new Response<User> ("result", "message", user);
}

关于java - Jersey 自定义 JSON 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32181395/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com