草庐IT

Jackson-databind

全部标签

java - 具有嵌套类型信息属性的 Jackson 多态反序列化

我受到给定JSON结构的限制:{"metadata":{"eventName":"FooEvent","field1":"bla"},"event":{...}}如何使用多态反序列化和嵌套类型信息属性对其进行反序列化?我在@JsonTypeInfo中使用metadata.eventName嵌套属性,如下所示:@JsonTypeInfo(use=Id.NAME,include=As.EXISTING_PROPERTY,visible=true,property="metadata.eventName")@JsonSubTypes({@Type(name="fooEvent",value=

java - jackson :数组中缺少@JsonTypeInfo

我发现JacksonJSONProcessor库有一些奇怪的行为,我很好奇这是故意的还是错误。请看下面的代码:@JsonTypeInfo(use=Id.NAME)publicclassNut{}…ObjectMappermapper=newObjectMapper();Nutnut=newNut();Objectobject=newNut();Nut[]nuts=newNut[]{newNut()};Object[]objects=newObject[]{newNut()};System.out.println(mapper.writeValueAsString(nut));Syste

java - 使用 Scala 和 Jackson 以及 java.lang.Integer 或 scala.Int 对泛型类型进行奇怪的反序列化问题

我们都知道泛型类型在Java和Scala下会被类型删除。但是我们在使用Jackson和ScalaJackson模块的Scala中遇到了一个奇怪的问题。我创建了一个小测试来展示这个问题。importcom.fasterxml.jackson.databind.ObjectMapperimportcom.fasterxml.jackson.module.scala.DefaultScalaModuleobjectGenericTest{caseclassTestWithInt(id:Option[Int])caseclassTestWithInteger(id:Option[Integer

java - 使用 Jackson 创建像 JSON.org 这样的简单对象

我想使用Jackson创建简单的JSON对象,我不需要为每个响应构建自定义类,而是一个类似于下面代码的预制对象。其他JSON库(android、JSON.org、GSON)你可以做类似的事情JsonObjectmyObject=newJsonObject("{\"a\":1}");myObject.getInt("a");//returns1我似乎无法在Jackson包中找到类似的操作。PS:我知道我可以创建一个java类来封装这个特定的JSON字符串,但我正在寻找的是一种创建通用JSON对象的方法,我不需要将其解析为我定义的类.我似乎无法在互联网上找到任何指向与此类似的东西的东西。我

java - 使用 Jackson 反序列化 JSON 时的隐式默认值

在反序列化各种JSON消息时,我想为某种类型的属性提供一个默认值。是generallysuggested只需在类中指定值,但如果您必须跨多个类执行此操作,这很容易出错。你可能会忘记一个并最终得到null而不是默认值。我的意图是设置所有属于Optional的属性。至Optional.absent.自null到底是什么Optional试图消除,事实证明将它们与jackson一起使用是令人沮丧的。Jackson的大多数允许您自定义反序列化过程的功能都集中在作为输入的JSON上,而不是围绕实例化您要反序列化的对象的过程。我似乎最接近通用解决方案的方法是构建我自己的ValueInstantiat

java - jackson 错误 : No such method com. fasterxml.jackson.core.JsonGenerator.setCurrentValue(Ljava/lang/Object;)V

我正在开发一个Spring-MVC应用程序,从早上开始,当我调用一个特定的Controller方法时,我收到了与Jackson相关的错误。由于没有具体指出错误所在的行,因此我查找并发现这是一个POM问题。我从周五开始才添加了Google和Dropbox依赖项,这个问题似乎正在发生。我已经尝试排除Jackson-mapper,但不走运。错误日志:SEVERE:Servlet.service()forservlet[appServlet]incontextwithpath[]threwexception[Handlerprocessingfailed;nestedexceptionisja

java - jackson 日期格式问题 : java bean to JSON string conversion

我正在使用Jackson2.7.4版本将javabean转换为JSON字符串。这样做时,我面临日期格式问题。正在使用Java1.7版本。bean类:publicclassBaseBean{privatejava.util.DatefromDate;publicDategetFromDate(){returnfromDate;}publicvoidsetFromDate(DatefromDate){this.fromDate=fromDate;}}我低于日期格式{"fromDate":1465370289436}这不是我要求的。然后我配置下面的代码ObjectMapperobjectMa

java - 如何使用 Jackson 反序列化以下 json

我有以下json:{"id":"myid","fields":{"body":"textbody"}}我想将其反序列化为以下Java类:classTestItem{privateStringid;privateStringbody;publicStringgetId(){returnid;}publicvoidsetId(Stringid){this.id=id;}publicStringgetBody(){returnbody;}publicvoidsetBody(Stringbody){this.body=body;}使用JacksonJson反序列化器。这不起作用,因为body字

java - Jackson 使用解包根解析 json,但无法设置 @JsonRootName

其余服务响应1243654INVOICE或在JSON中:{"transaction":{"trxNumber":1243654,"type":"INVOICE"}}我用的时候没有问题:mapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE,true)作为结果类@JsonRootName("transaction")publicclassTransaction{privateStringtrxNumber;privateStringtype;//gettersandsetters}但实际上我应该使用第3方jar中的事务类,它与上

java - 将 JSON 名称映射到 Java 类字段/方法(Jackson Parser)

总结如何将JSON名称映射到Java类的字段名称,这在使用Jackson解析器时可能(略有)不同?详情我有传入的JSON文档,我想使用Jacksonparser将其转换为Java对象.这适用于JSON名称与最终Java对象字段名称匹配的情况(我在PlayFramework中这样做)。然而,传入的JSON文档中的某些JSON名称不适合作为漂亮的Java字段名称。更改所有现有的JSON文档以使用正确的Java命名约定目前是不可行的。例如{"goodName":"value","not-so-handy":"value"}我无法创建字段名称为“not-so-handy”的Java类,因为这在