Skip to content

Feature request: @JsonbView #343

@nimo23

Description

@nimo23

It would be great to have something like jacksons @JsonView in Json-B, maybe it can be called @JsonbView. It should work like the following example:

// enums to discriminate between different json views
public enum UserSubset{
    MY_SUBSET_1, 
    MY_SUBSET_2;
}

// the user class
public class User {

    private int id;

    @JsonbView("mysubset1")
    private String name;

    // UserSubset.MY_SUBSET_1 => UserSubset.MY_SUBSET_1.name() = "mysubset1"
    @JsonbView(UserSubset.MY_SUBSET_1)
    private Task task;
}

// the task class
public class Task {

    private int id;

    // property will be (de)serialized in mysubset1, mysubset2 and the default one
    @JsonbView("mysubset1, mysubset2")
    private String description;
}

The value of @JsonbView is a common (array of) String or Enum which is used as a discriminator. Using something like

jsonb.toJson(user, "mysubset");
or
jsonb.toJson(user, UserSubset.MY_SUBSET_1);

will outut the json with only the properties annotated with @JsonbView("mysubset1") or @JsonbView(UserSubset.MY_SUBSET_1)

Is something like this already planned?

I think it would be an extremely useful and simple approach to declare various JSON subviews quickly, easily and cleanly.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions