gpt4 book ai didi

java - 使用 Jersey 为 GET 请求返回 JSON 时找不到 JSONObject 的序列化程序

转载 作者:行者123 更新时间:2023-11-29 04:34:00 25 4
gpt4 key购买 nike

我正在使用 Jersey 来实现 REST api。除了所有端点之外,我还想创建一个关于页面来列出所有端点及其用法。

@GET
@Produces(MediaType.APPLICATION_JSON)
public Response displayInfo() {
JSONObject json = createInfoJson();
return Response.ok(json).build();
}
/////////////////////////////////////////
public static JSONObject createInfoJson() {
JSONArray ja = new JSONArray();

JSONObject jo1 = new JSONObject();
jo1.put("baseurl", "/tests/");
jo1.put("description", "Basic Information page");
jo1.put("example", "/tests/");
ja.put(jo1);

JSONObject jo2 = new JSONObject();
jo2.put("baseurl", "/tests/sendmsg");
jo2.put("description", "Run Kafka Test");
jo2.put("example", "/tests/sendmsg?count=100");
ja.put(jo2);
ja.put(jo2);

JSONObject json = new JSONObject();
json.put("name", "Kafka Messaging Test");
json.put("endpoints", ja);

return json;
}

当我在浏览器中点击关于页面时,出现以下错误:

No serializer found for class org.json.JSONObject and no properties discovered to create BeanSerializer 
(to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS)

从 Jersey 返回 JSONObject 对象的正确方法是什么?

最佳答案

您正在尝试将 JSONObject 序列化为 JSON,这种方式行不通(错误解释了原因)。但是您至少有两个选择:

  1. json序列化为字符串:

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public Response displayInfo() {
    JSONObject json = createInfoJson();
    return Response.ok(json.toString()).build();
    }
  2. 为您的响应创建模型/POJO 并使用它代替 JSONObject。

关于java - 使用 Jersey 为 GET 请求返回 JSON 时找不到 JSONObject 的序列化程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42566321/

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