相关疑难解决方法(0)

仅在序列化期间使用@JsonIgnore,但不反序列化

我有一个发送到服务器和从服务器发送的用户对象.当我发出用户对象时,我不想将散列密码发送给客户端.所以我添加@JsonIgnore了密码属性,但这也阻止了它被反序列化为密码,这使得在没有密码时很难注册用户.

我怎样才能@JsonIgnore应用于序列化而不是反序列化?我正在使用Spring JSONView,所以我没有很多控制权ObjectMapper.

我试过的事情:

  1. 加入@JsonIgnore物业
  2. @JsonIgnore仅添加getter方法

java spring json annotations jackson

298
推荐指数
5
解决办法
26万
查看次数

杰克逊:如何防止现场序列化

我有一个带密码字段的实体类:

class User {
    private String password;

    //setter, getter..
}
Run Code Online (Sandbox Code Playgroud)

我希望在序列化期间跳过此字段.但它应该仍然能够反序列化.这是必需的,以便客户端可以向我发送新密码,但无法读取当前密码.

我如何与杰克逊完成这项任务?

java json jackson

157
推荐指数
7
解决办法
12万
查看次数

如何告诉jackson忽略我无法控制源代码的属性?

简而言之,我的一个实体有一个GeometryCollection,当你调用"getBoundary"时会抛出一个异常(为什么这是另一本书,现在让我们说这就是它的工作方式).

有没有办法告诉杰克逊不要包括那个特定的吸气剂?我知道当我拥有/控制代码时我可以使用@JacksonIgnore.但事实并非如此,杰克逊通过连续序列化父对象来达到这一点.我在jackson文档中看到了一个过滤选项.这是一个看似合理的解决方案吗?

谢谢!

java json jackson

108
推荐指数
7
解决办法
16万
查看次数

如何排除Jackson不使用注释的字段?

我需要在渲染之前按名称排除某些字段.字段列表是动态的,因此我无法使用注释.

我试图创建自定义序列化程序,但我不能在那里获得字段名称.

在我使用的GSON中ExclusionStrategy,但杰克逊没有这样的功能.有同等的吗?

json jackson

35
推荐指数
4
解决办法
7万
查看次数

杰克逊动态改变JsonIgnore

我有一个类,里面也有变量.有时我想忽略一些字段,有时候不反序列化(也许在序列化时).我怎么能在杰克逊这样做?

java json jackson deserialization

29
推荐指数
1
解决办法
4万
查看次数

弹簧静止控制器返回特定字段

我一直在思考使用Spring MVC设计JSON API的最佳方法.我们都知道IO很昂贵,因此我不想让客户端进行多次API调用以获得他们需要的东西.但与此同时,我不一定要回厨房水槽.

作为一个例子,我正在开发类似于IMDB的游戏API,而不是用于视频游戏.

如果我返回与游戏相关的所有内容,它将看起来像这样.

/ API /游戏/ 1

{
    "id": 1,
    "title": "Call of Duty Advanced Warfare",
    "release_date": "2014-11-24",
    "publishers": [
        {
            "id": 1,
            "name": "Activision"
        }
    ],
    "developers": [
        {
            "id": 1,
            "name": "Sledge Hammer"
        }
    ],
    "platforms": [
        {
            "id": 1,
            "name": "Xbox One",
            "manufactorer": "Microsoft",
            "release_date": "2013-11-11"
        },
        {
            "id": 2,
            "name": "Playstation 4",
            "manufactorer": "Sony",
            "release_date": "2013-11-18"
        },
        {
            "id": 3,
            "name": "Xbox 360",
            "manufactorer": "Microsoft",
            "release_date": "2005-11-12"
        }
    ],
    "esrbRating": {
        "id": 1,
        "code": …
Run Code Online (Sandbox Code Playgroud)

java rest spring spring-mvc spring-restcontroller

15
推荐指数
2
解决办法
1万
查看次数

Jackson JSON动态忽略属性

我有以下课程 -

雇员

public class Employee {

    private String firstName ;
    private String lastName ;
    private String emailAddress ; 
    private String ssn ;
}

工资表

public class Payroll {

    // different payroll related fields

    private Employee emp ;

}

HR

public class HR {

    // different HR related fields

    private Employee emp ;

}

现在当我序列化我的Payroll类时,我不想从Employee类序列化我的ssn字段.

当我序列化我的HR类时,我不希望从Employee类序列化我的emailAddress字段.

如何使用Jackson JSON API从序列化中动态排除字段?

json jackson

2
推荐指数
1
解决办法
5881
查看次数

Spring Boot中的api仅返回模型的特定字段

我正在编写一个 spring boot api,它从数据库获取一些数据,存储在模型对象中并返回它。但我只想返回模型的几个字段作为 api 响应。

List<MyModel> myModelList = new ArrayList<>();
mongoUserCollection.find().into(myModelList);



 class MyModel{
    public int id; 
    public String name;
    public String lastname;
    public int age;
// getter & setter of all properties
    }
Run Code Online (Sandbox Code Playgroud)

我正在显示 myModelList 作为响应。作为回应,它显示了所有字段。如何仅显示特定字段,例如仅显示 ID 和年龄。仅从数据库中选择 ID 和年龄仍将显示响应中模型的所有字段(姓名和姓氏将显示为空)。除了创建新的 ModelView 类或将 JsonIgnore 设置为该模型之外,还有什么方法吗?

java spring-mvc spring-boot

1
推荐指数
1
解决办法
5588
查看次数

带有@JsonView 的 Spring Json 序列化返回关联的空对象

我有一个带有 JPA 和 JSON 序列化的 Spring-Boot-Project。我尝试使用 @JsonView 仅序列化指定的属性。它工作正常,但对于我在Order(例如order.user)中的关联,它序列化了空的 Json-Object。

我使用以下依赖项

  • Spring-Boot 2.0.1.RELEASE
  • Spring-Boot-Starter-JPA 2.0.1.RELEASE
  • Spring-Hateos 0.24.0.RELEASE

请参阅以下 Json 结果:

{
  "content" : {
    "orderResources" : [ {
      "receiptDate" : "2019-08-14",
      "state" : "BILL_CREATED",
      "user" : { },
      "employer" : { },
      "orderplace" : { },
      "propertyManagement" : null,
      "plannings" : [ { } ]
    }, {
      "receiptDate" : "2019-08-17",
      "state" : "BILL_CREATED",
      "user" : { },
      "employer" : { },
      "orderplace" : { },
      "propertyManagement" : …
Run Code Online (Sandbox Code Playgroud)

java spring-boot json-serialization

0
推荐指数
1
解决办法
809
查看次数