草庐IT

Jackson2

全部标签

java - 强制 jackson 反序列化为特定的原始类型

我正在使用Jackson1.8.3将以下域对象序列化和反序列化为JSONpublicclassNode{privateStringkey;privateObjectvalue;privateListchildren=newArrayList();/*gettersandsettersomittedforbrevity*/}然后使用以下代码序列化和反序列化对象ObjectMappermapper=newObjectMapper();mapper.writeValue(destination,rootNode);然后反序列化mapper.readValue(destination,Node

java - 如果存在特定字段,是否可以使用 Jackson 多态反序列化来序列化为子类型?

使用旋转动物园示例:publicclassZooPen{publicStringtype;publicListanimals;}publicclassAnimal{publicStringname;publicintage;}publicclassBirdextendsAnimal{publicdoublewingspan;}如果未指定翼展,我想使用多态反序列化构造Animal实例,如果指定翼展,则构造Bird实例。在Jackson中,非类型化反序列化通常看起来像这样:@JsonTypeInfo(use=JsonTypeInfo.Id.NAME,include=JsonTypeInfo

java - 如何查看 org.codehaus.jackson 日志消息 - 使用 logging.properties

我正在尝试使用org.codehaus.jackson包对传入的PUT请求进行反序列化,但我收到了错误消息Therequestsentbythe客户端语法不正确。如何在我的PivotalTC服务器日志中获取更详细的日志/错误消息,例如在catalina.log中?我已将以下行添加到logging.properties:org.codehaus.level=FINEST但是NO来自org.codehaus的消息显示在我的日志中,尽管错误消息显示在网页上。也许codehaus不支持Java日志记录,我应该配置J4Log或类似的其他日志记录工具?我的Jackson版本是1.9.13,我使用的

java - Jackson 将字符串字段解析为 JSON

我有以下JSON:{"some_key":"{\"a\":1,\"b\":\"text\"}"}如您所见,some_key字段不是JSON对象,它是一个包含有效JSON的字符串。我想将其解析为以下结构:classFoo{Barsome_key;}classBar{inta;Stringb;}更新:A类和B类,具有getter和setter、构造函数。我没有显示它们使样本简短。我无法编辑JSON的奇怪结构。问题是如何让Jackson将内部字符串字段解析为JSON对象。 最佳答案 @t_liang非常接近-只需要比评论多一点空间来展示工

Jackson 序列化:Cannot deserialize value of type `java.time.LocalDateTime`

问题描述使用jackson反序列化异常如下:Causedby:com.fasterxml.jackson.databind.exc.InvalidFormatException:Cannotdeserializevalueoftypejava.time.LocalDateTimefromString“2023-02-1319:43:01”:Failedtodeserializejava.time.LocalDateTime:(java.time.format.DateTimeParseException)Text‘2023-02-1319:43:01’couldnotbeparsedatind

java - 如何使用 jackson 在 java 中解包和序列化 java 映射?

我有一个这样的beanclassFoo{privateMapdataMap;privateStringfooFieldOne;privateStringfooFieldTwo;}classData{privatefieldOne;privatefieldTwo;}我想像这样序列化为Json{"key1":{"fieldOne":"somevalue","fieldTwo":"somevalue"},"key2":{"fieldOne":"someothervalue","fieldTwo":"someothervalue"},"fooFieldOne":"valueone","fooF

java - 让 Jackson 对输入 JSON 更友好

我有办法让Jackson对输入的JSON不那么严格吗?例如。JSONObject提供以下津贴:Theconstructorsaremoreforgivinginthetextstheywillaccept:Anextra,(comma)mayappearjustbeforetheclosingbrace.Stringsmaybequotedwith'(singlequote).Stringsdonotneedtobequotedatalliftheydonotbeginwithaquoteorsinglequote,andiftheydonotcontainleadingortrail

java - 如何使用 jackson 将 Json 数组写入文件

我创建了一个Json文件,我想在其中编写java对象作为Array元素。我正在使用jackson。try{Stringjson;StringphyPath=request.getSession().getServletContext().getRealPath("/");Stringfilepath=phyPath+"resources/"+"data.json";Filefile=newFile(filepath);if(!file.exists()){System.out.println("painai");file.createNewFile();}json=mapper.wri

java - ExceptionMapper 的 Jersey/Jackson 异常问题

我正在使用Jersey向外界提供JavaREST服务。我提供了一些采用JSON的函数,我将Jackson框架与jersey结合使用,将它们转换为POJO。我有一个问题,如果错误的jackson格式被发送到服务器,答案(http响应的内容)是一个jackson特定的异常描述。如果我有一个带有属性“surname”的POJO并将json字符串中的“sursname”发送到服务器,我得到:Unrecognizedfield"sursname"(ClassXY),notmarkedasignorableat[Source:sun.net.httpserver.FixedLengthInputS

java - 如何让 jackson 不使用默认值序列化原语

在Jackson中,可以在POJO上使用JsonSerialize注释以防止空对象被序列化(@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL))。但是,基元不能设置为null,因此此注释不适用于未被触及且默认为0的int之类的东西。是否有一个注释可以让我说“对于这个类,不要序列化原语,除非它们不同于它们的默认值”或“对于这个字段,如果它的值为X,不要序列化它“? 最佳答案 如果您使用的是Jackson的最新版本,您可以使用JsonInclude.Include.NON_D