jjzjj

objectmapper

全部标签

java - ObjectMapper 无法解析为类型

我无法让JSON正常工作。ObjectMapper无法解析。库已正确导入。importjava.io.File;importjava.io.IOException;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importnet.sf.json.JSONException;importnet.sf.json.util.*;importcom.fasterxml.jackson.*;publicclassJson{privatestaticfinalSt

java - 如何让 Jackson mixin 与私有(private)字段一起工作?

我正在尝试使用Jackson2.0mixin来序列化一个没有注释的类。下面是简化的源代码。请注意,我没有使用getters/setters,但似乎我仍然可以使用mixinsaccordingtothedocumentation.publicclassNoAnnotation{privateDatecreated;privateStringname;//makeonewithsomedatainitfortheteststaticNoAnnotationmake(){NoAnnotationna=newNoAnnotation();na.created=newDate();na.name

java - 从 Jackson ObjectMapper 中排除空数组

我正在使用JacksonObjectMapper从Java对象树构建JSON.我的一些Java对象是集合,有时它们可​​能是空的。因此,如果它们为空,则ObjectMapper会生成我:"attributes":[],并且我想从我的结果中排除那些类型的空JSON数组。我当前的ObjectMapper配置:SerializationConfigconfig=objectMapper.getSerializationConfig();config.setSerializationInclusion(JsonSerialize.Inclusion.NON_NULL);config.set(S

java - 如何将 List 包装为 Jackson 生成的 JSON 中的顶级元素

我遇到了一个问题,我试图将一个列表作为根节点包含在内,但我似乎无法获得它。让我解释。假设我们有一个类“TestClass”classTestClass{StringpropertyA;}现在,在一些实用方法中,这就是我所做的StringutilityMethod(){Listlist=someService.getList();newObjectMapper().writeValueAsString(list);}我试图在JSON中获得的输出是{"ListOfTestClasses":[{"propertyA":"propertyAValue"},{"propertyA":"someO

java - ObjectMapper java.lang.NoSuchMethodError : com. fasterxml.jackson.core.JsonFactory.requiresPropertyOrdering()Z

我正在尝试使用ObjectMapper将Json字符串映射到Java对象ObjectMappermapper=newObjectMapper();CustomerDatacustomerData=mapper.readValue(customerDataString,customerData.class);但是当我这样做的时候,我得到了这个错误java.lang.NoSuchMethodError:com.fasterxml.jackson.core.JsonFactory.requiresPropertyOrdering()Zatcom.fasterxml.jackson.datab

java - 如何在使用 Jackson 反序列化 OffsetDateTime 时保留偏移量

在传入的JSON中,我有一个符合ISO8601标准的日期时间字段,其中包含时区偏移量。我想保留此偏移量,但不幸的是,Jackson在反序列化此字段时默认使用GMT/UTC(我从http://wiki.fasterxml.com/JacksonFAQDateHandling中了解到)。@RunWith(JUnit4.class)publicclassJacksonOffsetDateTimeTest{privateObjectMapperobjectMapper;@Beforepublicvoidinit(){objectMapper=Jackson2ObjectMapperBuilde

java - 在 Jackson 的 ObjectMapper 中动态启用/禁用 UNWRAP_ROOT_VALUE 和 WRAP_ROOT_VALUE?

有没有办法动态启用/禁用Jackson的ObjectMapper中的UNWRAP_ROOT_VALUE和WRAP_ROOT_VALUE。我必须根据调用的服务启用/禁用这些属性,有些请求需要JsonRootName而有些则不需要。我在需要它的类中有@JsonRootName注释。我有一个扩展Jackson对象映射器的自定义ObjectMapper类。我正在调用一种方法来根据调用的服务启用/禁用属性,但它似乎不起作用。publicvoidsetWrapValue(booleanwrap){finalAnnotationIntrospectorintrospector=newJacksonA

java - 使用带有泛型的 Jackson ObjectMapper 到 POJO 而不是 LinkedHashMap

我正在使用Jersey定义如下服务:@Path("/studentIds")publicvoidwriteList(JsonArraystudentIds){//iterateoverstudentIdsandsavethem}JsonArray在哪里:publicclassJsonArrayextendsArrayList{publicJsonArray(Stringv)throwsIOException{ObjectMapperobjectMapper=newObjectMapper(newMappingJsonFactory());TypeReference>typeRef=ne

java - 使用 ObjectMapper + JavaTimeModule 将 JacksonJsonProvider 注册到 Jersey 2 客户端

我正在尝试像这样编码包含ISO格式时间戳的响应:{..."time":"2014-07-02T04:00:00.000000Z"...}进入我的域模型对象中的ZonedDateTime字段。如果我使用以下代码段中评论的解决方案,最终它会起作用。SO上有很多类似的问题,但我想得到一个具体的答案将JacksonJsonProvider与ObjectMapper+JavaTimeModule一起使用的另一种方法有什么问题?ObjectMappermapper=newObjectMapper();mapper.registerModule(newJavaTimeModule());Jackso

java - 将毫秒时间戳反序列化为 java.time.Instant

我正在尝试使用Jackson读取一个JSON文件,并将其中一个以纪元毫秒形式存储的字段存储为JavaInstant,但是反序列化的行为并不像预期的那样。这是我在尝试读取时间戳时看到的内容:1503115200000Jackson正在设置Instant字段为+49601-10-28T16:00:00Z.这似乎是因为Jackson的默认设置是使用Instant.ofEpochSecond(Longl)读取时间戳而不是Instant.ofEpochMilli(Longl).有没有办法设置JacksonObjectMapper使用ofEpochMilli方法代替?这就是我目前的ObjectMa