草庐IT

Jackson2HashMapper

全部标签

java - Jackson - 由于构造函数导致的 JsonMappingException

尝试反序列化JSON时遇到以下异常Nosuitableconstructorfoundfortype[simpletype,classMyObj$obj$Card]:cannotinstantiatefromJSONobject(needtoadd/enabletypeinformation?)at[Source:java.io.StringReader@4344ee21;line:1,column:201](throughreferencechain:MyObj["obj"]->Obj["cards"])JSON是{"obj":{"api":"OK","cache":false,"c

java - jackson 反序列化json到java对象

这是我用于反序列化的Java代码,我正在尝试将json字符串转换为java对象。为此,我使用了以下代码:packageex1jackson;importcom.fasterxml.jackson.core.JsonGenerationException;importcom.fasterxml.jackson.databind.JsonMappingException;importcom.fasterxml.jackson.databind.ObjectMapper;importjava.io.IOException;publicclassEx1jackson{publicstaticv

java - jackson 将值读取为字符串

我有一个值未知的对象,比如说{"data":[{"a":...,"dont_know_what_else_is_here":....}]}我只想将“数据”的值作为字符串存储到变量/数据库中。我应该如何从流式API中读取它? 最佳答案 假设你已经将这个对象读入JsonNode,你可以这样:Stringcontent=jsonNode.get("data").textValue();UPD:由于您使用的是流式解析器,thisJackson用法的示例可能会有所帮助。UPD:方法名称现在是textValue()-docs

java - 使用类名作为 JSON Jackson 序列化的根键

假设我有一个pojo:importorg.codehaus.jackson.map.*;publicclassMyPojo{intid;publicintgetId(){returnthis.id;}publicvoidsetId(intid){this.id=id;}publicstaticvoidmain(String[]args)throwsException{MyPojomp=newMyPojo();mp.setId(4);ObjectMappermapper=newObjectMapper();mapper.configure(SerializationConfig.Feat

java - 没有默认构造函数的 jackson 第 3 方类

我正在尝试使用Jackson向Json读取/写入我的POJO。截至目前,除了第3方类(class)外,我已经对其进行了配置并为我的类(class)工作。尝试读取Json时出现错误:org.codehaus.jackson.map.JsonMappingException:Nosuitableconstructorfoundfortype经过几次快速的谷歌搜索后,我的类(class)似乎需要defaultconstructor或至overridethedefaultconstructorwithannotations.不幸的是,失败的类来自第3方库,并且该类没有默认构造函数,我显然无法覆

java - 使用 jackson JsonNodeFactory 的最佳方式

我正在使用Jackson构建自定义JSON对象。这是正确的做法吗?它似乎运行良好(并且输出正确),但我可能会错过使用JsonNodeFactory的方式。该对象是否像我在这里所做的那样被传递?JsonNodeFactoryfactory=JsonNodeFactory.instance;ObjectNodedataTable=newObjectNode(factory);ArrayNodeaaData=newArrayNode(factory);for(PkgLoadpkgLoad:pkgLoadList){ObjectNoderow=newObjectNode(factory);ro

java - Jackson 将 ISO8601 格式的日期时间反序列化为 Java8 Instant

我正在尝试使用Jackson将ISO8601格式的日期反序列化为Java8java.time.Instant。我用ObjectMapper注册了JavaTimeModule,并关闭了WRITE_DATES_AS_TIMESTAMPS设置。但是,如果尝试反序列化2016-03-28T19:00:00.000+01:00它将不起作用,因为JavaTimeModule似乎只会反序列化使用UTC时区格式化的日期时间偏移量(例如2016-03-28T18:00:00.000Z)。然后我尝试像这样使用@JsonFormat注释:@JsonFormat(shape=JsonFormat.Shape.

json - 如何排除 jackson 不使用注释的字段?

我需要在渲染之前按名称排除一些字段。字段列表是动态的,所以我不能使用注释。我尝试创建自定义序列化程序,但无法在此处获取字段名称。在GSON中,我使用了ExclusionStrategy,但Jackson没有这样的功能。有没有等价物? 最佳答案 以下按名称排除字段的示例来自myblogpost,GsonvJackson-Part4.(搜索PropertyFilterMixIn。)此示例演示使用FilterProvider和SimpleBeanPropertyFilter到serializeAllExcept用户指定字段名称列表。@Js

java - Fasterxml jackson : Remove double quotes

我有以下json:{"test":"example"}我使用来自FasterXMLJackson的以下代码。JsonParserjp=factory.createParser("{\"test\":\"example\"}");json=mapper.readTree(jp);System.out.println(json.get("test").toString());它输出:"example"Jackson有设置去掉双引号吗? 最佳答案 好吧,当你.get("test")得到的是一个JsonNode并且它恰好是一个TextNod

json - Jackson JSON Marshall 忽略 getter

我正在使用Jackson将POJO转换为JSON以存储在数据库中。但是我有一个我想忽略的setter/getter。我看到了很多与@JsonIgnoreProperties相关的信息,但我似乎无法取得任何进展。我基本上想要@Transient的等价物。基本用例(我想忽略InternationalNumber):publicclassPhoneNumber{privateStringcountry;privateStringnumber;publicPhoneNumber(){}publicStringgetCountry(){returncountry;}publicStringget