草庐IT

mongo-jackson-mapper

全部标签

java - 使用 Jackson 反序列化时如何放宽命名策略?

我一直在尝试升级JSON模块以使用Jackson的FasterXML(2.6.3)版本而不是旧的Codehaus模块。在升级过程中,我注意到使用FasterXML而不是Codehaus时命名策略有所不同。Codehaus在命名策略方面更加灵活。下面的测试突出了我在使用FasterXML时遇到的问题。我如何配置ObjectMapper以使其遵循与Codehaus相同的策略?我无法更改JSONProperty注释,因为它们有数百个。我希望升级能够在命名策略方面向后兼容。importjava.io.IOException;importcom.fasterxml.jackson.annotat

java - Jackson:Map的反序列化

我正在使用Jackson反序列化一个json文件(我用jackson序列化)。json是一个简单的HashMap,但当我尝试反序列化时,映射器会报错。org.codehaus.jackson.map.JsonMappingException:Cannotdeserializeinstanceofjava.util.HashMapoutofSTART_ARRAYtoken我序列化的HashMap字符串.....{"0f861a9a-0a3e-40a7-8ff3-0b83d8070876":{"name":"BAR.xml","filePath":"/FOO/repo/BAR.xml"},

java - jackson 列表反序列化。嵌套列表

我正在努力创建一个具有嵌套列表的API。Jackson似乎是创建对象的好工具,但我不太清楚如何嵌套列表,我想知道这是否可行。我的对象看起来像这样。publicclassOrder{publicStringname;publicListitems;}我希望有一种方法可以将它映射到json,看起来像这样:{name:"Aname"items:{elements:[{price:30}]}}我们希望能够做到这一点,以便我们可以将属性添加到列表中。 最佳答案 您可以为Listitems编写自定义反序列化程序.请参见以下示例:classIte

java - 在使用 @JsonValue 反序列化类时,Jackson 更喜欢私有(private)构造函数而不是 @JsonCreator

我有一个带有私有(private)构造函数和静态工厂的简单类。我希望该类序列化为数字,所以我用@JsonValue注释了该字段的getter。然而,Jackson似乎更喜欢私有(private)构造函数而不是静态工厂,即使我用@JsonCreator注释静态工厂也是如此。如果我用@JsonIgnore注释私有(private)构造函数,它会起作用,但感觉有点不对劲。我看到一些帖子声称@JsonCreator只有在参数用@JsonProperty注释时才有效;但是,序列化为JSON对象的对象似乎就是这种情况。此对象被序列化为数字,因此没有属性可提供给注释。有什么我想念的吗?示例类:pac

java - 使用 jackson 转换 Java 对象时如何忽略可选属性

我正在使用Jackson1.9.2(org.codehaus.jackson)从Java对象转换为匹配的JSON结构。这是我的java对象:ClassColorLight{Stringtype;booleanisOn;Stringvalue;publicStringgetType(){returntype;}publicsetType(Stringtype){this.type=type;}publicbooleangetIsOn(){returnisOn;}publicsetIsOn(booleanisOn){this.isOn=isOn;}publicStringgetValue(

java - Jackson JSON - 解码时出现 "no single-String constructor/factory method"错误

最简单的情况给我带来了麻烦。我第一次遇到它。我能够解码稍微复杂的json,但这个简单的失败了。什么会导致这种情况?为什么jackson只用一个字符串就有问题?保存用户角色名称的简单类。publicclassUpdateUserRole{privateStringname;publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}}Controller内部publicvoidupdateUserRole(@PathVariableLongid,@RequestBodyUpdateUser

java - 使用 Jackson 将 java.time.localdate 序列化为 json

我正在编写一个Java8SpringMVC应用程序,该应用程序使用REST服务与遗留ProgressOpenEdge应用程序进行通信(我为此使用了Spring的RestTemplate)。我需要从Progress应用程序读取和写入的数据包含一些日期。在Java应用程序中,我使用java.time.LocalDate数据类型来表示这些字段,并且我使用Jackson将数据序列化/反序列化到Json中/从Json中反序列化。我遇到的问题如下。当我从进度应用程序发送数据时,日期作为“2015-01-02”发送,并按预期作为LocalDate存储在我的Java实体中。当数据发送到Web前端时,J

java - 如何使用jackson在java中将json转换为POJO

我正在使用spring3.1.2,我需要将一个json对象解析为POJO。这是我需要解析的json:{"Person":{"id":"2"},"Dog":{"dateOfBirth":"2012-08-2000:00:00","price":"10.00"}}我需要将这个json对象(由两个对象组合而成)转换为一个POJO,这里是:publicclassMyClass{publicMyClass(){}publicMyClass(StringpersonsId,TimeStampdogsDateOfBirth,BigDecimaldogsPrice){....//assigneachp

java - 如何使用 jackson 将 java 对象序列化为 xml 属性?

有没有办法通过jackson将javavar(例如int)序列化为xml属性?我找不到任何特殊的jackson或json注释(@XmlAttribute@javax.xml.bind.annotation.XmlAttribute)来实现这一点。例如publicclassPoint{privateintx,y,z;publicPoint(finalintx,finalinty,finalintz){this.x=x;this.y=y;this.z=z;}@javax.xml.bind.annotation.XmlAttributepublicintgetX(){returnx;}...

java - jackson - 不要序列化惰性对象

我有一个实体:@EntitypublicclassBook{@Id@GeneratedValue(strategy=GenerationType.AUTO)privatelongid;@ColumnprivateStringtitle;@OneToMany(fetch=FetchType.LAZY,mappedBy=("movie"),cascade=CascadeType.ALL)privateListgenre;}然后我有一个Controller,其目的是检索书籍,我的问题是,流派字段包含在我的Controller的json响应中。有什么方法可以排除在jackson序列化对象时延迟