草庐IT

Jackson2HashMapper

全部标签

java - JSON Jackson 将不同的键解析到同一个字段中

我有一个POJO,它有一个字段:publicclassMedia{privateAssetasset;}在将json响应解析为此AssetsPOJO时,一切正常。但是,该Assets附带的key略有不同。它可以是:@JsonProperty("cover_asset")或@JsonProperty("asset")有没有办法注释POJO以识别这种情况并反序列化到同一字段中。他们不可能出现在同一个响应中。 最佳答案 好吧,因为您只关心反序列化,@JsonAlias2.9中的介绍非常适合这种情况。你可以这样做:@JsonAlias({"

java - jackson - 将 java 列表写入 json 数组的最佳方法

我想使用jackson将ArrayList转换为JsonArray。Event.java:这是一个javabean类,有两个字段“field1”、“field2”映射为JsonProperty。我的目标是:转换ArrayListlist=newArrayList();list.add(newEvent("a1","a2"));list.add(newEvent("b1","b2"));到[{"field1":"a1","field":"a2"},{"field1":"b1","field":"b2"}]我能想到的方法是:writeListToJsonArray():publicvoid

java - jackson JSON : get node name from json-tree

如何使用Jackson从JSON树中接收节点名称?JSON文件看起来像这样:{node1:"value1",node2:"value2",node3:{node3.1:"value3.1",node3.2:"value3.2"}}我有JsonNoderootNode=mapper.readTree(fileReader);需要类似的东西for(JsonNodenode:rootNode){if(node.getName().equals("foo"){//bar}}谢谢。 最佳答案 对于Jackson2+(com.fasterxml

java - 如何防止 Map 中的空值和 bean 中的空字段通过 Jackson 序列化

我有一个MapfoosMap我想通过Jackson序列化。现在我想在序列化过程中进行以下两个设置:Map可以有很多空值和空键,我不希望空值被序列化。对于所有正在序列化的Foo,我不想序列化Foo中引用的空对象。实现这一目标的最佳方法是什么?我在我的项目中使用jackson-core1.9和jackson-mapper1.9jars。 最佳答案 如果更改要序列化的原始Map数据结构以更好地表示要序列化的实际值是合理的,那可能是一种不错的方法,这可能会减少必要的Jackson配置量.例如,如果可能,只需在调用Jackson之前删除nul

java - 使用 Jackson 映射器的正确依赖集

我是Jackson的新手,我正在编写一些代码进行练习。我发现新版本的Jackson库可以在Fasterxml上找到:Jackson,所以我将以下依赖项添加到我的Mavenpom文件中:com.fasterxml.jackson.corejackson-annotations2.2.2com.fasterxml.jackson.corejackson-core2.2.2com.fasterxml.jackson.corejackson-databind2.2.2我期待我可以直接使用ObjectMapper,但是在花了很多时间后我发现要使用ObjectMapper我必须添加旧库下面:org

java - 忽略 Jackson 序列化的特定字段

我正在使用Jackson库。我想在序列化/反序列化的时候忽略某个特定的字段,例如:publicstaticclassFoo{publicStringfoo="a";publicStringbar="b";@JsonIgnorepublicStringfoobar="c";}应该给我:{foo:"a",bar:"b",}但我得到了:{foo:"a",bar:"b",foobar:"c"}我正在用这段代码序列化对象:ObjectMappermapper=newObjectMapper();Stringout=mapper.writeValueAsString(newFoo());我的类中字

java - 与 Jackson 映射时将默认值设置为空字段

我正在尝试使用Jackson将一些JSON对象映射到Java对象。JSON对象中的某些字段是必需的(我可以用@NotNull标记),有些是可选的。与Jackson映射后,所有未在JSON对象中设置的字段在Java中都会有一个空值。是否有与@NotNull类似的注解可以告诉Jackson为Java类成员设置默认值,以防它为null?编辑:为了让问题更清楚,这里有一些代码示例。Java对象:classJavaObject{@NotNullpublicStringnotNullMember;@DefaultValue("Value")publicStringoptionalMember;}J

json - 下载 jackson.codehaus.org jar

我需要下载一个json解析器,所以我转到jackson.codehaus.org网站。而不是一个方便的链接来点击和下载jar/jar,他们让我绕圈子。有谁知道这些jar在哪里——确切地说? 最佳答案 您可以改用此链接:DOWNLOADv2.9.7MoreGeneralLink或转到http://mvnrepository.com/并搜索'jackson-core'. 关于json-下载jackson.codehaus.orgjar,我们在StackOverflow上找到一个类似的问题:

java - jackson 通过删除 'is' 重命名原始 boolean 字段

这可能是重复的。但我找不到我的问题的解决方案。我有课publicclassMyResponseimplementsSerializable{privatebooleanisSuccess;publicbooleanisSuccess(){returnisSuccess;}publicvoidsetSuccess(booleanisSuccess){this.isSuccess=isSuccess;}}Getter和setter由Eclipse生成。在另一个类中,我将值设置为true,并将其写为JSON字符串。System.out.println(newObjectMapper().wr

java - 使用 Jackson 将 JSON 反序列化为多态类型 - 一个完整的示例给了我一个编译错误

我正在尝试完成程序员Bruce的教程,该教程应该允许对多态JSON进行反序列化。完整的列表可以在这里找到ProgrammerBrucetutorials(顺便说一句,很棒的东西)我已经完成了前五个,没有任何问题,但我在最后一个(示例6)上遇到了障碍,这当然是我真正需要开始工作的那个。我在编译时收到以下错误ThemethodreadValue(JsonParser,Class)inthetypeObjectMapperisnotapplicableforthearguments(ObjectNode,Class)这是由代码块引起的publicAnimaldeserialize(JsonP