gpt4 book ai didi

java - 使用 JAX-RS 将 JSON 查询参数转换为对象

转载 作者:IT老高 更新时间:2023-10-28 12:51:55 26 4
gpt4 key购买 nike

我有一个 JAX-RS 资源,它将其参数作为 JSON 字符串获取,如下所示:

http://some.test/aresource?query={"paramA":"value1", "paramB":"value2"}

这里使用 JSON 的原因是查询对象在实际用例中可能非常复杂。

我想将 JSON 字符串转换为 Java 对象,示例中为 dto:

@GET 
@Produces("text/plain")
public String getIt(@QueryParam("query") DataTransferObject dto ) {
...
}

JAX-RS 是否支持从作为查询参数传递的 JSON 到 Java 对象的这种转换?

最佳答案

是的,您可以这样做,但您需要自己编写转换代码。幸运的是,这很容易,您只需要编写一个具有公共(public) String 构造函数的类来进行转换。例如:

public class JSONParam {
private DataTransferObject dto;

public JSONParam(String json) throws WebApplicationException {
try {
// convert json string DataTransferObject and set dto
}
catch (JSONException e) {
throw new WebApplicationException(Response.status(Status.BAD_REQUEST)
.entity("Couldn't parse JSON string: " + e.getMessage())
.build());
}
}

public DataTransferObject getDTO() {
return dto;
}
}

那么你可以使用:

@GET 
@Produces("text/plain")
public String getIt(@QueryParam("query") JSONParam json) {
DataTransferObject dto = json.getDTO();
...
}

关于java - 使用 JAX-RS 将 JSON 查询参数转换为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2697541/

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