当前位置: 首页 > 知识库问答 >
问题:

SpringController中的自定义json返回[重复]

巢安澜
2023-03-14

如何在不同的springboot控制器方法中使用不同的json序列化?假设我有

class Guy{
private String name;
private int age;
private List<String> hobbies;
}

在一些控制器方法中,我只想以JSON的形式返回一个家伙的名字。在某些方法中,我希望以JSON的形式返回名称和年龄。在某些方法中,我只想以JSON的形式返回列表。注释POJO中的属性是没有意义的,因为每个方法都有不同的返回规范······

class Guy{
   @JsonView(Views.MyTestView.class)
   private String name;
   @JsonView(Views.MyTestView.class)
   private int age;
   private List<String> hobbies;
}
public class Views {
    public class MyTestView{}
}

  ObjectMapper mapper = new ObjectMapper();
  mapper.disable(MapperFeature.DEFAULT_VIEW_INCLUSION);
  return mapper.writerWithView(Views.MyTestView.class)
               .writeValueAsString(guy);

共有1个答案

杨安歌
2023-03-14

您可以使用Jackson Mixins,并且每个条件都有一个mixin,指定要忽略/添加到JSON的属性。

 类似资料:
  • 我正在尝试减少使用Rest API时返回的JSON。我可以在查询中使用“_embed”参数让它工作,但是它返回了大量我不需要的数据。因此,根据WP最佳实践,我想设置一个自定义endpoint,并在它的回调中调用一个函数来输出我需要的三个项目。看起来很简单,但是当我尝试的时候,它对所有的节点都返回NULL。在我的functions.php档案中,我有: 然后路由并回调自定义endpoint 当我使用

  • 问题内容: 我试图用返回自定义json,但总是得到响应。 如果我删除所有内容,我将获得标准json数据的正确响应。我做错了什么? 问题答案: 如果您不需要ModelViewSet而只想在GET请求上使用自定义JSON 您也可以使用,不需要模型 和 使用ModelViewSet 您已将自定义JSON放入get_queryset中,这是错误的。如果您想使用,仅此一项就足够了: 这种带有默认实现,,,,

  • 我打印了错误, 这两个文件在同一个目录中

  • 改变json输出策略 默认使用阿里的fastjson进行json输出 JSON.toJSONString(obj) 如果要更换输出策略,操作方式如下: @Override protected void initApiConfig(ApiConfig apiConfig) { ... // 自定义json格式输出,将null字符串变成"" apiConfig.setJson

  • 网关默认对业务结果进行合并,然后返回统一的格式。 针对alipay.story.find接口,微服务端返回结果如下: { "name": "白雪公主", "id": 1, "gmtCreate": 1554193987378 } 网关合并后,最终结果如下 { "alipay_story_find_response": { "msg": "Succe

  • 在我们的Spring Boot应用程序中,我们使用Spring Cloud AWS: Spring-Cloud-Starter-AWS Spring-Cloud-AWS-AutoConfigure Spring-Cloud-AWS-Messaging 若要从SQS队列接收消息,请执行以下操作。然而,我们需要能够启动应用程序,即使队列不可访问(即“(服务:AmazonSQS;状态代码:403;错误代