草庐IT

jackson-annotations

全部标签

java - Jackson 的不可变 Lombok 注释类

创建类的首选方法是什么不可变可以用Jackson序列化/反序列化人类可读且样板级别低最好,我会喜欢这样的工作:@Data(onConstructor=@__(@JsonCreator))然后将所有字段设为privatefinal。但是,这甚至无法编译(我不确定为什么)。使用@AllArgsConstructor(onConstructor=@__(@JsonCreator))会编译但只会产生InvalidDefinitionException:Noserializerfoundforclass 最佳答案 添加ConstructorP

java - 对于 FindBugs,jar305.jar 中的注释是否应该优于 annotation.jar 中的类似注释?

在FindBugsannotations.jar不是jsr305.jar的子集。但是,一些注释似乎是重复的(完全相同或非常接近)。如果我可以选择,我应该更喜欢jsr305.jar中的注释吗?请注意,我不只是想知道使用来自jsr305.jar的注释会“更好”只是因为它们代表了一个标准。相反,我想知道如果我更喜欢特定注释的jsr305.jar版本,FindBugs工具是否会执行相同(或更好)的分析。可能某些jsr305.jar注释应该是首选,但其他注释不应该是这样。我正在使用FindBugs1.3.9,即themostrecentversion在撰写本文时。使用此版本,我看到以下选项(如果

java - 在 Java 中使用 Jackson 反序列化异常/throwable 时出现问题

我在使用Jackson(版本2.2.1)反序列化Exception和Throwable实例时遇到问题。考虑以下代码段:publicstaticvoidmain(String[]args)throwsIOException{ObjectMapperobjectMapper=newObjectMapper();objectMapper.configure(SerializationFeature.INDENT_OUTPUT,true);objectMapper.setVisibility(PropertyAccessor.FIELD,Visibility.ANY);objectMapper

java - Jackson - 使用动态 key 反序列化 json

我有以下JSON:{"2016-01-23":{"downloads":4,"re_downloads":1,"updates":0,"returns":0,"net_downloads":4,"promos":0,"revenue":"0.00","returns_amount":"0.00","edu_downloads":0,"gifts":0,"gift_redemptions":0,"date":"2016-01-23"},"2016-01-24":{"downloads":1,"re_downloads":1,"updates":0,"returns":0,"net_dow

java - 如何阻止 jackson 的 YAML 编写器引用值

我正在从事一个将文件从JSON转换为YAML的项目。我正在使用以下库的2.8.3版本:jackson核心jackson数据绑定(bind)jackson-dataformat-yamljackson注释我的YAML序列化代码非常简单:ObjectMappermapper=newObjectMapper(newYAMLFactory());ObjectWriterwriter=mapper.writer();try{SequenceWritersw=writer.writeValues(System.out);sw.write(tree);}catch(IOExceptione){e.p

java - Jackson 没有使用 @JsonProperty 覆盖 Getter

JsonProperty并未覆盖jackson从getter获取的默认名称。如果我用ObjectMapper和jackson序列化下面的类,我会得到{"hi":"hello"}如您所见,JsonProperty注解没有效果classJacksonTester{Stringhi;@JsonProperty("hello")publicStringgetHi(){returnhi;}}将@JsonProperty放在字符串本身上也不起作用。似乎我可以更改名称的唯一方法是重命名setter/getter,唯一的问题是第一个字母总是小写 最佳答案

java.lang.ClassNotFoundException : org. 代码豪斯.jackson.map.JsonSerializableWithType

我的构建路径中有Jackson2.2.3,但我仍然遇到此错误。有人知道为什么吗?com.sun.jersey.core.spi.component.ProviderFactory__getComponentProvider:Theproviderclass,classcom.sun.jersey.json.impl.provider.entity.JSONWithPaddingProvider,couldnotbeinstantiated.Processingwillcontinuebuttheclasswillnotbeutilizedjava.lang.SecurityExcept

java - 自定义 Jackson HttpMessageConverter 在 Spring 4.2 中不再有效

我正在将一个应用程序从SpringPlatform版本1.1.3.RELEASE更新到2.0.1.RELEASE,这将SpringFramework版本从4.1.7升级到4.2.4,将Jackson从2.4.6升级到2.6.4。Spring或Jackson对自定义HttpMessageConverter实现的处理似乎没有任何重大变化,但我的自定义JSON序列化未能发生,我无法确定原因。以下在之前的SpringPlatform版本中运行良好:型号@JsonFilter("fieldFilter")publicclassMyModel{/*modelfieldsandmethods*/}模

java - 创建自定义 Jackson 注释

一个项目需要大量使用Jackson注解的如下组合。那么,有没有办法创建另一个注释来避免丑陋的复制/粘贴:publicclassA{@JsonProperty("_id")@JsonSerialize(using=IdSerializer.class)@JsonDeserialize(using=IdDeserializer.class)Stringid;}publicclassB{@JsonProperty("_id")@JsonSerialize(using=IdSerializer.class)@JsonDeserialize(using=IdDeserializer.class)

java - 用 jackson 反序列化 List<Interface>

我想将json反序列化为Foo类:classFoo{Listbars;}interfaceIBar{...}classBarimplementsIBar{...}IBar有两个实现,但是在反序列化时我总是想使用第一个实现。(理想情况下,这应该使问题更容易,因为不需要运行时类型检查)我确信我可以编写自定义反序列化器,但我觉得一定有更简单的方法。我找到了这个注释,它在没有列表的情况下工作得很好。@JsonDeserialize(as=Bar.class)IBarbar;Listbars;//Don'tknowhowtousetheannotationhere.