Questions tagged «jackson»

Jackson是一个Java库,用于处理诸如读写(解析/生成)以及与Java对象之间的数据绑定之类的任务。尽管主要用于JSON,但Jackson还支持许多其他数据格式,例如Avro,CBOR,CSV,Java属性,Protobuf,Smile,XML和YAML。

12
无法从START_OBJECT令牌中反序列化java.util.ArrayList的实例
我正在尝试发布List自定义对象。我在请求正文中的JSON是这样的: { "collection": [ { "name": "Test order1", "detail": "ahk ks" }, { "name": "Test order2", "detail": "Fisteku" } ] } 处理请求的服务器端代码: import java.util.Collection; import javax.ws.rs.Consumes; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; @Path(value = "/rest/corder") public class COrderRestService { @POST @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) public Response postOrder(Collection<COrder> orders) …

9
如何使用Jackson JSON处理器序列化Joda DateTime?
如何让Jackson根据一种简单的模式(例如“ dd-MM-yyyy”)序列化我的Joda DateTime对象? 我试过了: @JsonSerialize(using=DateTimeSerializer.class) private final DateTime date; 我也尝试过: ObjectMapper mapper = new ObjectMapper() .getSerializationConfig() .setDateFormat(df); 谢谢!
118 java  json  jodatime  jackson 

4
杰克逊如何将JsonNode转换为ArrayNode而不进行转换?
我将JSON库从org.json更改为Jackson,我想迁移以下代码: JSONObject datasets = readJSON(new URL(DATASETS)); JSONArray datasetArray = datasets.getJSONArray("datasets"); 现在在杰克逊,我有以下几点: ObjectMapper m = new ObjectMapper(); JsonNode datasets = m.readTree(new URL(DATASETS)); ArrayNode datasetArray = (ArrayNode)datasets.get("datasets"); 但是我不喜欢那里的演员,有可能ClassCastException吗?是否有一种等效于的方法getJSONArray,org.json以便在不是数组的情况下进行适当的错误处理?
116 java  arrays  json  jackson 

8
如何告诉杰克逊忽略我无法控制源代码的属性?
长话短说,我的一个实体有一个GeometryCollection,当您调用“ getBoundary”时会引发异常(这是另一本书的原因,现在让我们说这是它的工作方式)。 有没有办法让我告诉杰克逊不要包括那个特定的吸气剂?我知道自己拥有/控制代码时可以使用@JacksonIgnore。但是事实并非如此,杰克逊通过对父对象的连续序列化来结束这一点。我在杰克逊文档中看到了一个过滤选项。这是一个可行的解决方案吗? 谢谢!
112 java  json  jackson 

11
如何在Jackson上使用自定义序列化程序?
我有两个要使用Jackson序列化为JSON的Java类: public class User { public final int id; public final String name; public User(int id, String name) { this.id = id; this.name = name; } } public class Item { public final int id; public final String itemNr; public final User createdBy; public Item(int id, String itemNr, User createdBy) …

4
JsonMappingException:超出START_ARRAY令牌
给定以下.json文件: [ { "name" : "New York", "number" : "732921", "center" : [ "latitude" : 38.895111, "longitude" : -77.036667 ] }, { "name" : "San Francisco", "number" : "298732", "center" : [ "latitude" : 37.783333, "longitude" : -122.416667 ] } ] 我准备了两个类来表示所包含的数据: public class Location { public String name; public …
111 java  arrays  json  jackson 

6
如何在Java中修改JsonNode?
我需要在Java中更改JSON属性的值,我可以正确获取该值,但无法修改JSON。 这是下面的代码 JsonNode blablas = mapper.readTree(parser).get("blablas"); for (JsonNode jsonNode : blablas) { String elementId = jsonNode.get("element").asText(); String value = jsonNode.get("value").asText(); if (StringUtils.equalsIgnoreCase(elementId, "blabla")) { if(value != null && value.equals("YES")){ // I need to change the node to NO then save it into the JSON } } } 做这个的最好方式是什么?
109 java  json  jackson 

8
为什么在使用@JsonCreator注释构造函数时,必须使用@JsonProperty注释其参数?
在Jackson中,当用注释构造函数时@JsonCreator,必须用注释其参数@JsonProperty。所以这个构造函数 public Point(double x, double y) { this.x = x; this.y = y; } 变成这个: @JsonCreator public Point(@JsonProperty("x") double x, @JsonProperty("y") double y) { this.x = x; this.y = y; } 我不明白为什么有必要。你能解释一下吗?

3
Jackson和泛型参考
我想将jackson json库用于通用方法,如下所示: public MyRequest<T> tester() { TypeReference<MyWrapper<T>> typeRef = new TypeReference<MyWrapper<T>>(); MyWrapper<T> requestWrapper = (MyWrapper<T>) JsonConverter.fromJson(jsonRequest, typeRef); return requestWrapper.getRequest(); } ... public class MyWrapper<T> { private MyRequest<T> request; public MyRequest<T> getRequest() { return request; } public void setRequest(MyRequest<T> request) { this.request = request; } } public class MyRequest{ private List<T> …
107 java  json  generics  jackson 

10
如何在Jackson的自定义解串器中调用默认解串器
我在Jackson的自定义解串器中遇到问题。我想访问默认的序列化器以填充要反序列化的对象。填充之后,我将执行一些自定义操作,但首先,我想使用默认的Jackson行为反序列化对象。 这是我目前拥有的代码。 public class UserEventDeserializer extends StdDeserializer<User> { private static final long serialVersionUID = 7923585097068641765L; public UserEventDeserializer() { super(User.class); } @Override @Transactional public User deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { ObjectCodec oc = jp.getCodec(); JsonNode node = oc.readTree(jp); User deserializedUser = null; deserializedUser = super.deserialize(jp, ctxt, new User()); …

12
如何使用Jackson将原始JSON包含在对象中?
当使用Jackson对对象进行反序列化时,我试图在Java对象中包含原始JSON。为了测试此功能,我编写了以下测试: public static class Pojo { public String foo; @JsonRawValue public String bar; } @Test public void test() throws JsonGenerationException, JsonMappingException, IOException { String foo = "one"; String bar = "{\"A\":false}"; Pojo pojo = new Pojo(); pojo.foo = foo; pojo.bar = bar; String json = "{\"foo\":\"" + foo + "\",\"bar\":" …

10
如何自定义Spring Boot隐式使用的Jackson JSON映射器?
我正在使用Spring Boot(1.2.1),其方式与他们的Build RESTful Web Service教程中的方式类似: @RestController public class EventController { @RequestMapping("/events/all") EventList events() { return proxyService.getAllEvents(); } } 因此,在上面,Spring MVC隐式使用Jackson将我的EventList对象序列化为JSON。 但我想对JSON格式进行一些简单的自定义,例如: setSerializationInclusion(JsonInclude.Include.NON_NULL) 问题是,定制隐式JSON映射器的最简单方法是什么? 我在此博客文章中尝试了该方法,创建了一个CustomObjectMapper,依此类推,但是步骤3“在Spring上下文中注册类”失败了: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jacksonFix': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire method: public void com.acme.project.JacksonFix.setAnnotationMethodHandlerAdapter(org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter); nested exception is …

12
如何在Jackson中禁用fail_on_empty_beans?
使用杰克逊2.1,如何禁用fail_on_empty beans错误消息似乎要我禁用的消息? 我以为这只是世界上最简单的事情,但是该死了,而且太晚了,我还没有找到一个简单的教程或任何特别明显的东西api。SerializationFactory?他们为什么要使它如此直观,然后使错误消息看起来如此简单? 虽然我做喜欢的错误讯息,我的意思是,它比NPE更好。 我假设有一种使用注释的方法-但是我根本不希望将它们用于我正在做的简单工作!
100 java  jackson 

1
org.codehaus.jackson与com.fasterxml.jackson.core
org.codehaus.jackson和com.fasterxml.jackson.core相关吗?我有 org.codehaus.jackson jackson-所有版本1.7.2 和 com.fasterxml.jackson.core> jackson-databind版本2.4.3 在我的pom中。我不确定它们是否多余并且会发生冲突。
97 java  json  jackson 

5
使用Jackson将JSON反序列化为ArrayList <POJO>
我有一个Java类MyPojo,我对从JSON反序列化感兴趣。我已经配置了一个特殊的MixIn类MyPojoDeMixIn,以协助我进行反序列化。MyPojo只有int和String实例变量与适当的getter和setter方法相结合。MyPojoDeMixIn看起来像这样: public abstract class MyPojoDeMixIn { MyPojoDeMixIn( @JsonProperty("JsonName1") int prop1, @JsonProperty("JsonName2") int prop2, @JsonProperty("JsonName3") String prop3) {} } 在我的测试客户端中,我执行以下操作,但是它在编译时当然不起作用,因为JsonMappingException与类型不匹配有关。 ObjectMapper m = new ObjectMapper(); m.getDeserializationConfig().addMixInAnnotations(MyPojo.class,MyPojoDeMixIn.class); try { ArrayList&lt;MyPojo&gt; arrayOfPojo = m.readValue(response, MyPojo.class); } catch (Exception e) { System.out.println(e) } 我知道可以通过创建一个仅包含其中一个的“ Response”对象来缓解此问题ArrayList&lt;MyPojo&gt;,但是随后我将不得不为我想返回的每个单个类型创建这些有点无用的对象。 我也在线查看了JacksonInFiveMinutes,但经历了一段糟糕的时光,了解了有关这些问题Map&lt;A,B&gt;及其与我的问题的关系。如果您无法确定,我是Java的新手,并且来自Obj-C背景。他们特别提到: 除了绑定到POJO和“简单”类型外,还有另一种变体:绑定到通用(类型化)容器。这种情况由于所谓的Type Erasure(类型擦除)(Java使用它以某种向后兼容的方式实现泛型)而需要特殊处理,这使您无法使用Collection.class之类的东西(不会编译)。 因此,如果要将数据绑定到地图中,则需要使用: Map&lt;String,User&gt; result = mapper.readValue(src, new …
97 java  json  mapping  jackson 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.