伙计们!我正在开发一个web应用程序,我决定使用Jackson作为JSON处理框架。
我愿意发送请求数据;假设POJO看起来像这样:
data class JSONEnvelope(
@JsonProperty("obj1")
val obj1: Obj1,
@JsonProperty("obj2")
val obj2: Obj2)
将其序列化如下:
{
"obj1":{...},
"obj2":{...}
}
但是我需要向该对象添加一些元数据,比如字段meta1
和meta
。我以为@JsonAppend
会解决我的问题,但是我正在使用Jackson和泽西一起使用,所以我没有手动序列化对象,所以我不能使用writer.with属性("...",...)
。
我知道这个线程,但是没有一个答案可以满足我的需求,因为我认为,编写一个自定义序列化程序是有点过分了,而且如果我没有一个机制来“序列化原始对象的其余部分”。我很高兴有任何想法
您引用的答案中的解决方案是一个很好的解决方案,它向ObjectMapper添加了一个混合函数,然后使用ObjectWriter来配置它。
对于Jersey,它调用ObjectMapper。writerFor
,因此禁止调用withAttribute为了配置ObjectWriter,一种替代方法是在从writerFor返回属性之前将属性添加到ObjectWriter。我建议对ObjectMapper进行子类化,覆盖各种writerFor方法,并在此时添加必要的属性。然后,通过将ObjectMapper注册为JAX-RS提供者,您可以让Jersey使用它:请参阅javax中的各种注释。ws。rs
开始这项工作。这个答案给出了一个如何做的例子。
后续问题。有这样的等级制度。其中A是基类: 以及以下内容: 我想将B实例的所有ID映射到B.isVisible()的值,并将C实例的ID映射到TRUE 在最初问题的帮助下,我将其提炼为以下格式: 丑陋的版本是: 有没有帮助改进它,为更优雅的版本提供默认true?
我尝试使用以下代码反序列化API中接收的JSON对象: 我的类使用Lombok生成构造函数、getter和setter,如下所示: 这两个属性都应该是可选的,如果没有提供,则使用类定义中指定的默认值。但是,如果我现在尝试反序列化JSON 字段为。根据我的理解,以及我找到的所有示例代码,应该是一个空列表。 编辑:不是重复的,因为我使用的是没有选项的Lombok
我想为实现接口的类中的函数参数使用默认值,如下所示: 现在这里是编译的,这里是不编译的: KO:不允许重写函数为其参数指定默认值 KO:类“LocalFileStoreService”不是抽象的,并且没有实现抽象成员公共抽象存储文件(路径:String,负载:InputStream,类型:MediaType):fqn中定义的单元。。。文件存储服务 好 啊: 这是预期的行为吗?有没有更好的方法来管理
我有一个问题胸腺。我有一个带有组合框和一些字段的表单。我想把默认值放在组合框中,而“选择”对我不起作用。 代码如下: 其中“tipoDocumento”是具有两个值的枚举: 有人能帮我吗?
我使用Java和Jackson库将JSON文件解析为Java类。我的问题是,如果值为null或空,我无法设置默认值。有可能吗?现在,我只是把它写在setters部分。 例如,我有一个JSON文件 在我的Java类中,如果值为null或空,我想将其设置为Java函数。 举个例子 所以,如果设置了这个值,那么就是它。如果不是,那应该是美国。
我正在开发一个基于spring boot的rest web服务,我使用lombok来生成getter和setter,但是当我调用我的web服务时,我得到了一个带有默认值null的对象,这是我的代码: 我的实体 : 这是我的Rest服务: 在我的配置文件中,我添加了以下行: 当我呼叫我的服务时,我得到以下响应: 如果我在我的类中添加了getters和setters,它就能正常工作,我会得到json的