Tag: jackson

jackson反序列化具有未知的动态属性

我有一个JSON字符串,如: “shipping_profiles”: { “563”: { “name”: “name”, “value”: “value” }, “564”: { “name”: “name”, “value”: “value” }, “565”: { “name”: “name”, “value”: “value” }, “566”: { “name”: “name”, “value”: “value” } } 现在我用Jackson 2.0解析它。 我想从JSON字符串中获取List 。 可能吗?

JAX-RS和java.time.LocalDate作为输入参数

使用JAX-RS和java.time.LocalDate (java8)时出现问题。 我想使用JSON将这样的对象传递给JAX-RS方法: Person { java.time.LocalDate birthDay; } 我得到的例外是: com.fasterxml.jackson.databind.JsonMappingException :找不到类型[simple type,class java.time.LocalDate ]的合适构造函数:无法在[Source: io.undertow.servlet.spec.ServletInputStreamImpl@21cca2c1 ]中实例化JSON对象(需要添加/启用类型信息?) io.undertow.servlet.spec.ServletInputStreamImpl@21cca2c1 ; line:2,column:3] 如何创建某种将json-dates映射到java.time.LocalDate的拦截器? 我已经尝试实现了一个MessageBodyReader ,但是如果LocalDate是另一个类中的一个字段 ,我必须为每个持有LocalDate类编写一个MessageBodyReader (据我所知)。 (Java EE7(仅使用javaee-api,不需要任何第三方依赖),JAX-RS,Java 8,Wildfly 8.2) 有什么建议么?

没有默认构造函数的jackson第三方类

我正在尝试使用Jackson来读取/写入我的POJO来自Json。 截至目前,除了第三方课程外,我已经为我的课程配置并工作了。 当试图读入Json我得到错误: org.codehaus.jackson.map.JsonMappingException: No suitable constructor found for type 经过一些快速谷歌搜索后,我的类似乎需要一个默认构造函数或覆盖带注释的默认构造函数 。 不幸的是,失败的类来自第三方库,并且该类没有默认构造函数,我显然无法覆盖代码。 所以我的问题是,我能做些什么或者我运气不好吗? 谢谢。

使用jackson创建json对象

如何使用jackson创建一个类似于下面示例的json数组。 我尝试使用ObjectMapper,但这似乎不正确。 try (DirectoryStream ds = Files.newDirectoryStream(path)) { for (Path file : ds) { System.out.println(“name:”+file.getFileName()+ “\n”+ “mime:”+Files.probeContentType(file)+ “\n”+ “locked:”+!Files.isWritable(file)); } } catch (IOException e) { System.err.println(e); } 最终我将制作一个具有以下值的json。 * – (int) size file size in b. required * – (int) ts file modification time in unix time. required * – (string) mime mimetype. required for […]

JAXB映射到JSON

我编写了一个JAX-RS(Jersey)REST服务,它接受ONIX XML格式的XML消息。 通常,我已经使用xjc从给定模式生成了JAXB绑定的所有必需类。 整体上有500多个课程,我无法修改它们。 现在,当我有一个JAXB映射对象时,我需要将它存储到数据库中。 我使用mongoDb,因此消息格式应该是JSON。 我尝试使用Jackson和JAXB模块将JAXB对象转换为JSON,这对于存储数据非常有用。 但是当我尝试将JSON转换回JAXB对象时,它会以某种方式抛出与JAXBElement连接的exception。 在谷歌我发现jackson不支持JAXBElement,我必须解决这个问题。 但我不能这样做,因为我无法修改JAXB生成的类。 有没有办法用其他方法将JAXB对象映射到JSON,但是它将遵循整个JAXB规范,以便将来从JSON转换为JAXB对象和签证没有问题?

设置JSON自定义反序列化器

我正在尝试设置Jackson JSON自定义反序列化器以将JSON值转换为Long对象。 我按照本网站上的说明: http : //wiki.fasterxml.com/JacksonHowToCustomDeserializers来设置自定义反序列化器。 但是,为了启动自定义反序列化器,我必须每次都注释,例如 public class TestBean { Long value; @JsonDeserialize(using=LongJsonDeserializer.class) public void setValue(Long value) { this.value = value; } } 有没有办法告诉Jackson总是使用自定义反序列化器来反序列化Long,而不必每次都使用@JsonDeserialize(using = LongJsonDeserializer.class)注释?

如何将JSON反序列化为平面,类似Map的结构?

请记住,JSON结构之前是未知的,即它完全是任意的,我们只知道它是JSON格式。 例如, 以下JSON { “Port”: { “@alias”: “defaultHttp”, “Enabled”: “true”, “Number”: “10092”, “Protocol”: “http”, “KeepAliveTimeout”: “20000”, “ThreadPool”: { “@enabled”: “false”, “Max”: “150”, “ThreadPriority”: “5” }, “ExtendedProperties”: { “Property”: [ { “@name”: “connectionTimeout”, “$”: “20000” } ] } } } 应该反序列化为具有键的类似Map的结构(为了简洁,不包括以上所有内容): port[0].alias port[0].enabled port[0].extendedProperties.connectionTimeout port[0].threadPool.max 我目前正在调查jackson,所以我们有: TypeReference<HashMap> typeRef = new TypeReference<HashMap>() {}; Map o = objectMapper.readValue(jsonString, […]

如何有效地将org.json.JSONObject映射到POJO?

以前一定要问过这个问题,但我找不到。 我正在使用第三方库来检索JSON格式的数据。 该库以org.json.JSONObject向我提供数据。 我想将此JSONObject映射到POJO(Plain Old Java Object)以获得更简单的访问/代码。 对于映射,我目前以这种方式使用Jackson库中的ObjectMapper : JSONObject jsonObject = //… ObjectMapper mapper = new ObjectMapper(); MyPojoClass myPojo = mapper.readValue(jsonObject.toString(), MyPojoClass.class); 根据我的理解,上面的代码可以得到显着优化,因为目前已经解析的JSONObject的数据再次被送入带有JSONObject.toString()方法的序列化 – 反序列化链,然后送到ObjectMapper 。 我想避免这两个转换( toString()和解析)。 有没有办法使用JSONObject将其数据直接映射到POJO?

泽西岛:如何将jackson添加到Servlet Holder

我正在使用Jersey创建一个嵌入式Jetty webapp。 我不知道如何在这里添加jackson自动JSON serde: ServletHolder jerseyServlet = context.addServlet( org.glassfish.jersey.servlet.ServletContainer.class, “/*”); jerseyServlet.setInitOrder(0); jerseyServlet.setInitParameter( ServerProperties.PROVIDER_CLASSNAMES, StringUtils.join( Arrays.asList( HealthCheck.class.getCanonicalName(), Rest.class.getCanonicalName()), “;”)); // Create JAX-RS application. final Application application = new ResourceConfig() .packages(“com.example.application”) .register(JacksonFeature.class); // what do I do now to tie this to the ServletHolder? 如何在ServletHolder中注册此ResourceConfig ,以便在使用注释@Produces(MediaType.APPLICATION_JSON)使用Jackson? 这是嵌入式Jetty应用程序的完整主类 package com.example.application.web; import com.example.application.api.HealthCheck; import com.example.application.api.Rest; import com.example.application.api.Frontend; import org.apache.commons.lang.StringUtils; […]

使用jackson删除JSON元素

我有一个特定的JSON节点,对应于导入org.codehaus.jackson.JsonNode,而不是导入org.codehaus.jackson.map.JsonNode。 [ { “givenName”: “Jim”, “formattedName”: “jimJackson”, “familyName”: null, “middleName”: “none”, “honorificPrefix”: “mr”, “honorificSuffix”: “none” }, { “givenName”: “john”, “formattedName”: “johnLasher”, “familyName”: null, “middleName”: “none”, “honorificPrefix”: “mr”, “honorificSuffix”: “none” }, { “givenName”: “carlos”, “formattedName”: “carlosAddner”, “familyName”: null, “middleName”: “none”, “honorifiPrefix”: “mr”, “honorificSuffix”: “none” }, { “givenName”: “lisa”, “formattedName”: “lisaRay”, “familyName”: null, “middleName”: “none”, “honorificPrefix”: “mrs”, […]