问题标签 [jackson]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何使 JsonGenerator 漂亮地打印 Date 和 DateTime 值?
我正在使用此方法将任何对象转换为 json 字符串:
当正在打印的对象包含 java.util.Date 或 jodatime 的 DateTime 字段时,打印的值是自纪元以来的毫秒数。相反,我想以标准的“HH:MM:SS”表示法漂亮地打印它们。我该怎么做呢?
java - 杰克逊 JSON + Java 泛型
我正在尝试使用Jackson json libraryList<Bill
将以下 JSON 反序列化/映射到> java 对象。(此 json 由杰克逊生成,为简洁起见,我省略了该部分)
这是我的转换方法:
账单实体如下:
我得到这个错误:
这是我的简化 spring3 控制器,它返回 i/p json(杰克逊映射配置为默认视图):
我想我错过了一些明显的东西..但不确定它是什么..有什么想法吗?
java - 杰克逊与 JSON:无法识别的字段,未标记为可忽略
我需要将某个 JSON 字符串转换为 Java 对象。我正在使用杰克逊进行 JSON 处理。我无法控制输入 JSON(我从 Web 服务中读取)。这是我的输入 JSON:
这是一个简化的用例:
我的实体类是:
我的 Wrapper 类基本上是一个容器对象,用于获取我的学生列表:
我不断收到此错误,并且“包装器”返回null
。我不确定缺少什么。有人可以帮忙吗?
java - 反序列化时使用父对象的属性来确定子类?
尝试使用 Jackson 反序列化此内容时,创建 ExampleNode 数据时 JsonTypeInfo 提示失败,因为“kind”属性与其父级相关联且不可见。我尝试了各种工厂方法和 Jackson 注释,但由于 Jackson 创建了 ExampleNode 对象并将其传递给 setData() 本身,我看不到任何地方可以控制创建的对象类。
java - 默认使用数组而不是 Jackson 的 ObjectMapper 中的 ArrayLists
默认情况下,Jackson 的 ObjectMapper 将未知列表反序列化为 ArrayList,可以改为使用 String[] 吗?
例如,此 JSON 导致 items[0] 的类型为 ArrayList:
java - 在 Spring MVC 中使用 Jackson JSON 时,如何默认启用 Pascal 大小写?
我有一个项目使用 Spring MVC 创建和处理多个 REST 端点。我目前正在使用 Jackson 使用@RequestBody
和@ResponseBody
注释自动处理 JSON 的序列化/反序列化。
我已经让杰克逊工作了,所以我有了一个起点。我的问题是我们的旧序列化是手动完成的,并且使用 Pascal 大小写而不是 Camel 大小写(“MyVariable”而不是“myVariable”),而 Jackson 默认使用 Camel 大小写。
我知道我可以使用手动更改变量的名称@JsonProperty
。话虽如此,我不认为添加@JsonProperty
所有变量是可行的长期解决方案。
@JsonProperty
除了使用注释之外,有没有办法让杰克逊在序列化和反序列化时使用 Pascal 大小写?
编辑:看起来没有一种干净的方法可以在外部执行此操作。有几个人建议重写不同的类来实现我的目标。我愿意接受关于我可以覆盖哪些内容来改变大小写的建议。目前我已经制作了一个自定义的 ObjectMapper 来设置我想要的一些属性(即Inclusion.NON_NULL
)。我还没有找到任何可以让我改变套管行为的地方。有什么想法吗?
json - Jackson JSON 是否进行特殊字符转义?
我假设杰克逊会在序列化过程中自动转义特殊字符,即将“/path/”序列化为“\/path\/”。情况似乎并非如此 - 至少在 1.6 中是开箱即用的:
...失败 - 产生的输出是“/path/”。我必须编写自己的序列化程序还是有办法在杰克逊中启用特殊字符转义?
谢谢,-尼基塔
java - Spring REST 3 支持 XML 和 JSON
如果我们使用 Spring MVC 开发 REST,它将支持 XML 和 JSON 数据。我在我的 spring 配置 bean 中写了 ContentNegotiationViewResorverapp-servlet.xml
我的spring REST控制器是:
我在我的客户域类中设置@XStreamAlias("customer")
了注释。但是当我尝试访问它时http://localhost:8080/rest/customers/teddy.xml
,它总是响应 JSON 数据。
我在我的客户域类中设置@XmlRootElement(name="customer")
了注释。但是当我尝试访问它时http://localhost:8080/rest/customers/teddy.json
,它总是响应 XML 数据。
有什么不对 ?
java - 接口和@RequestBody
我目前正在开展一个项目,该项目允许用户(通过网络)在给定的时间段内预订(通过网络)所选资源的使用。在这个程序中,我试图保持 Spring 对接口编程的哲学(和一般最佳实践),因此我尝试在具体类之间重复功能的任何地方使用接口。
我创建的一个接口称为 BookableResourceController,它指定控制器所需的方法来处理要预订的任何类型的资源所需的最低功能。我还使用了第二个接口 BookableResource,它标识哪些对象对允许通过应用程序预订的资源进行建模。
我目前遇到的问题是 BookableResourceController 定义的一些方法使用 @RequestBody 映射将 JSON 对象转换为方法参数,并且由于 Jackson 只能将 JSON 转换为“SimpleType”对象,如果出现错误,我会收到错误消息我将输入参数指定为 BookableResource。
无法构造 org.codehaus.jackson.map.type.SimpleType 的实例,问题:抽象类型只能用附加类型信息来实例化
据我所知,这个错误意味着我需要定义 BookableResource 的特定实现,这意味着我很可能需要从接口中排除这些方法,即使用于此目的的任何控制器都需要这些方法。
我要问的是,是否有人知道如何将接口定义为@RequestBody
使用 JSON 的映射所期望的对象,或者是否有人对如何构造我的控制器接口以包含这些方法有任何建议?
干杯
jaxb - 使用带有 JAXB 注释的 Jackson JSON 库
我正在尝试在基于 RESTEasy 的 Web 应用程序中启用 JAXB 注释支持,这篇文章是向我推荐的 (http://wiki.fasterxml.com/JacksonJAXBAnnotations)。我能够得到 jackson-xc.jar 但我看不到如何注册注释内省。目前,RESTEasy 会自动序列化我的 JSON 响应,下面适合什么?目前,RESTeasy 自动序列化 JSON 对象。
包含jackson-xc jar,里面包含org.codehaus.jackson.xc.JaxbAnnotationIntrospector 注册这个注解introspector