小编Act*_*son的帖子

Java注释ElementType常量是什么意思?

java.lang.annotation.ElementType:

程序元素类型.此枚举类型的常量提供Java程序中声明的元素的简单分类.这些常量与Target元注释类型一起使用,以指定使用注释类型的合法位置.

有以下常量:

  • ANNOTATION_TYPE - 注释类型声明
  • CONSTRUCTOR - 构造函数声明
  • FIELD - 字段声明(包括枚举常量)
  • LOCAL_VARIABLE - 局部变量声明
  • 方法 - 方法声明
  • 包装 -包装声明
  • PARAMETER - 参数声明
  • TYPE - 类,接口(包括注释类型)或枚举声明

有人可以解释它们中的每一个(在实际代码中它们会被注释)吗?

java annotations

55
推荐指数
2
解决办法
4万
查看次数

运行时的部分JSON序列化(用于RESTful查询)

我试图在Tomcat中将Java对象转换为JSON(目前使用Jackson).基于RESTful请求中的字段,我想仅序列化那些字段.我想支持对任何字段子集的请求,所以我想在运行时(动态)执行此操作.

例如,假设我想支持User对象的部分序列化:

class User {
    private final String id;
    private final String firstName;
    private final String lastName;

    public User(String id, String firstName, String lastName) {
        this.id = id;
        this.firstName = firstName;
        this.lastName = lastName;
    }

    public String getId() { return id; }
    public String getFirstName() { return firstName; }
    public String getLastName() { return lastName; }
}
Run Code Online (Sandbox Code Playgroud)

如果我提出要求:

GET /users/{id}/?fields=firstName,lastName
Run Code Online (Sandbox Code Playgroud)

我想得到类似的东西{"firstName":"Jack","lastName":"Johnson"}.

如果我提出要求:

GET /users/{id}/?fields=firstName
Run Code Online (Sandbox Code Playgroud)

我想得到类似的东西{"firstName":"Jack"}.

Jackson的JSON View提供了定义逻辑属性子集(通过getter或字段访问的东西)来序列化的能力.但是,它们是静态定义的(使用注释)并且仅动态选择(每个序列化).在实践中,我想支持请求对象字段的任何子集,因此我可能有数千个JSON视图(10个字段意味着1,023个子集!).

什么JSON库在运行时支持部分序列化?

java rest json jackson

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

标签 统计

java ×2

annotations ×1

jackson ×1

json ×1

rest ×1