json - Spring API 应该返回 JSON 而不是转义字符串

标签 json spring jackson resteasy

我有 Spring 端点,它应该返回 JSON,因此它可以通过 Chrome 折叠/展开。有没有办法告诉 Spring 消息中的字符串是实际的 Json 表示,不需要转义双引号

端点声明:

@GET
@Path("/validate/{id}")
@Produces("application/json")
Response validate(@Context HttpServletRequest request, @PathParam("id") String id);    

端点实现:

public Response validate(HttpServletRequest request, String id) {
    try {
          return validatorService.validate(request, String id);
    } catch(Exception e) {
          throw new MyCustomException(e);
    }
}

异常处理程序:

public class ExceptionHandler implements ExceptionMapper {

    @Override
    public Response toResponse(MyCustomException exception) {
        String json = buildJsonResponse(exception);
        Message message = new Message(json);
        return Response.status(ERROR_HTTP_STATUS_CODE).entity(response).build();
    } 
 }


public class Message {
     String json;

     public Message(String json) {
         this.json = json;
     }

     public String getJson() {
        return json;
     }

}

响应:

   "json": "{  \"key\":  \"value\" }"

预期响应:

   "json": { "key":  "value" }

解决方法:

 private JsonNode convertToJson(String json) {
        ObjectMapper mapper = new ObjectMapper();
        try {
            return mapper.readTree(json);
        } catch (IOException e) {
            return NullNode.getInstance();
        }
    }

最佳答案

你为什么不用 @JsonRawValue 注释你的 getter

public class Message {
    String json;

    public Message(String json) {
        this.json = json;
    }

    @JsonRawValue
    public String getJson() {
       return json;
    }

}

那个

关于json - Spring API 应该返回 JSON 而不是转义字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55972268/

相关文章:

javascript - 通过具有已知键名的 props 访问数据 React js

ios - 如何使用 Mantle 添加与父级的关系?

c# - 使用 Entity Framework 将 int 时间戳转换为 DateTime

java - Json 字符串到具有动态键名称的 Java 对象

json - "Argument list too long"吞吐 JSON 文件时

spring - 方面编织应如何限制在 aop :advisor pointcuts? 引用的类中

java - 推荐的支持消息存储的表的数据库模式是什么?

spring - 对 Spring GenericBeanDefinition 的引用

java - @JsonView 注释不起作用

java - Jackson:不同的 XML 和 JSON 格式