问题标签 [objectmapper]
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 - JsonMappingException:没有找到适合类型 [simple type, class com.fasterxml.jackson.databind.node.ObjectNode] 的构造函数
我已经阅读了 External Object的JSONMappingException 和 Class的 JSONMappingException 但找不到ObjectNode
类的解决方案。
通过阅读外部对象的 JSONMappingException, 我了解到您必须在映射器中注册对象,但我没有创建任何 ObjectMapper 类,因为我正在调用 Web 服务
我正在尝试调用ReportQueryData.java
包含ObjectNode
(com.fasterxml.jackson.databind.node.ObjectNode) 实例变量的 My POJO ( ) 的 Web 服务。
报告查询数据.java
现在我在请求中调用包含 ReportQueryData 的 Web 服务,我面临以下异常
swift - 使用 AlamofireObjectMapper 创建 func 返回一个对象
我即将使用 AlamofireObjectMapper 扩展来映射来自服务器的 JSON 响应并创建一个函数来返回对象
我写了这些代码func
Herer是我的Constanst.swift(包含DownloadComplete
关闭)
我不知道为什么 funcdownloadPokemonDetails1
给出错误un-expected Non-void return value in void function
我的Pokemon
班级
java - 配置对象映射器以用小写替换值
我有一个看起来像这样的类 Diff:
我想使用以下调用创建一个 json 节点:
如果我有这样的差异:
正在做:
将返回:
不过,我需要“操作”这个词只是“操作”。据说,有一种方法可以配置 ObjectMapper,当它读取“操作”时,它会将其转换为“操作”,但我不知道该怎么做。有人知道吗?
json - 使用 ObjectMapper 的不同类型 JSON 文件
我正在使用 AlamofireObjectMapper 与后端服务器通信。其中一个请求的结果是一个项目数组,其中包含两个值:
- 指示第二个值(“arbitraryData”)属于哪种类型的数据的“typeIdentifier”
- 一个“任意数据”:
- 如果“typeIdentifier”包含“X”,则任意数据的类型为 ArbitraryDataTypeX
- 如果“typeIdentifier”包含“Y”,则任意数据的类型为 ArbitraryDataTypeY
这两个 ArbitraryDataType 类不共享任何共同的祖先(Mappable 除外)。它甚至可以是原始类型、数组、可选等。
如何让 AlamofireObjectMapper 使用适当的类型解析“arbitraryData”字段。
请参阅以下 JSON 文件:
我对应的 Swing 文件如下所示:
背景信息:我正在使用 AlamofireObjectMapper 与后端服务器进行通信。其中一个请求的结果是一个 Item 数组。typeIdentifier-mechanism(实际上它有点复杂,但让我们忽略它)由后端提供并且无法更改。
java - Spring Integration Java DSL — 如何配置 JSON 转换器以获取 Spring boot 的全局设置?
我正在使用集成流来调用 RESTful Web 服务,如下所示:
事实上,上面的代码完美运行。正如我从文档中了解到的,Spring 集成的 http outbound-gateway 使用 RestTemplate 的实例将 Http 响应正文转换为 s 数组ItemDTO
。
现在让我们考虑以下代码:
在这种情况下,Http 响应体被转换成一个字符串,它被传递给一个转换器(例如在我的实际项目中,我使用JOLT从一个警报文档转换为一个 HAL——JSON 资源表示)。然后,我实例化一个转换器来处理 JSON 到 java 对象的映射。令人惊讶的是,上面的代码失败了(例如,在我的项目中,转换器抛出 a UnrecognizedPropertyException
)。
失败的原因似乎是transformer使用的Object mapper没有和RestTemplate一样配置。我想知道为什么转换器不使用与 RestTemplate 实例相同的 ObjectMapper,或者至少为什么它们不使用相同的配置(即 Spring boot 的全局配置)。无论如何,有没有配置 ObjectMapper 供转换器使用?
更新
我发现了如何配置变压器的对象映射器。
首先,我们创建并配置Jackson的ObjectMapper的一个实例,如下:
然后,我们按如下方式实例化转换器(替换上面代码中的相应行):
我还是觉得transformer使用的ObjectMapper应该采用Spring boot的全局配置。
java - 即使使用 NON_NULL,Jackson ObjectMapper 也会抛出 NullPointerException
当使用以下 JSON 并且“电话”或“电子邮件地址”为空时,我会收到 NullPointerException。
JSON:
这是堆栈跟踪:
我正在像这样设置我的自定义 ObjectMapper:
这意味着CteUserContext cteUserContext = MigrationObjectMapper.getMigrationObjectMapper().convertValue(item.getItem(), new TypeReference<CteUserContext>(){});
抛出错误。
CteUserContext 内部是一个 User 对象,它包含 List 和 List。这些不应该根据对象映射器配置进行序列化吗?
arrays - Objectmapper 获取 JSON 中一项的数组
所以我有以下 JSON,我将它与 ObjectMapper 和 Realm 一起使用。
我的问题是从“类型”中获取数据,对于数组中的某些项目,它表示“现在”或“稍后”,而对于其他项目是空的(因此,没有给出类型项目)。
我尝试在我的映射中执行以下操作:
当我检查 Realm 数据库时,您可以看到 typez,一个 [getType] 数组已生成,但它对于所有项目都是空的(即使是类型为“现在”的项目)。其他两项(id 和 url)填写在数据库中。
我做错了什么,它不会保存到数据库中?
java - 翻译json根元素jackson?
我正在使用 jackson 1.9 并使用它的ObjectMapper
类来序列化和反序列化我的内容。因此,我使用了PropertyNamingStrategy,它在序列化过程中以特定形式转换我的所有键,并在反序列化过程中反向回溯。
然而,这导致给我 json 之类的:
对象映射器:---> JSON 字符串:
所以 myNamingStrategy
不适用于 json 根元素。它的名称在序列化期间不会转换为短名称。
如何也为我的根元素应用类似的序列化和反序列化策略?
java - UNWRAP_ROOT_VALUE 不工作杰克逊?
我向服务器发送一个 HTTP 请求,内容为 JSON 格式,如下所示。
客户
这会将我的内容转换为 JSON 并添加根元素。我使用命名策略将我的属性名称转换为一种形式,并类似地用于AnnottaionIntrospector
将 rootName 转换为相同的形式。
Annotation 中的根元素AE
被转换为ae
inside AnnotationIntrospector
,类似地使用PropertyNamingStrategy
.
服务器
服务器上接收到的资源是LinkedHasMap
客户端发送的 JSON。
可以看到修改后的根名称存在。
但是,objectMapper.convertValue(resource, AE.class);
没有将其AE
正确转换为 POJO 并给出错误:
我已经申请UNWRAP_ROOT_VALUE
了,但它仍然给出错误。我想UNWRAP_ROOT_VALUE
只适用于 Json 字符串?
如果从客户那里我不包装根值并发送 json 之类的,
没有根元素,我可以成功地将资源转换为 POJO(使用objectMapper.convertValue(resource, AE.class)
)。
但是打包后就不行了。对此有什么建议吗??