问题标签 [jackson2]
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.
json - Jackson 使用原始 json 将属性值反序列化为对象
我已经定义了 JSON Pojo 类,如下所示,在下面的 MyMessage 类中,有时我将 kpMessage 类作为字符串接收,如何将接收到的字符串转换为对象。
KpMessage.java
下面的示例输入按预期工作。
但是以下输入失败并出现错误no String-argument constructor/factory method to deserialize from String value
如何为上述输入添加反序列化器,以便如果收到 String 由于转义字符"
,则将 String 转换为KpMessage
Object
jackson - 意外的令牌 (END_OBJECT),预期的 FIELD_NAME:缺少属性“@type”
我在反序列化期间遇到异常,来宾配置文件是 Root 对象中的嵌套对象(其中的几个级别)。我无法控制它的序列化方式,因为我只是来自 kafka 主题的这条消息的消费者。有没有办法使这项工作,除了设置
GuestProfile
这对我有用,并在填充其他属性的情况下返回 null 。但是,我需要一种方法来自定义 JSON 中这个特定嵌套对象的反序列化并填充它。
com.fasterxml.jackson.databind.JsonMappingException:意外令牌(END_OBJECT),预期 FIELD_NAME:缺少包含类型 ID 的属性“@type”(对于 com.test.GuestProfile 类)
jackson - com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.lang.String out of START_OBJECT token
when deserializing below JSON, it fails with above exception message when trying to parse the server attribute which has its type 'string' nested within it, how to parse a JSON which is having the attribute types nested within each attribute like below?
java - 将 json 数组反序列化为 java 对象保存列表
好的,所以我一直在搞砸这个。我得到一个 json 数组,其中包含如下所示的对象:[{
"id": "1",
"name": "some name",
"url": "some url",
"active": true
}, {
"id": "2",
"name": "some other name",
"url": "some other url",
"active": true
}
]"
现在,我希望能够将该数组反序列化为一个 java 对象,该对象包含数组中的对象列表。我制作了一个自定义反序列化器,如下所示:
保存列表的类如下所示:
现在,我知道这可能是一种愚蠢的方法,但长话短说,这是刚需。我显然做错了什么,因为我收到了这个错误:
无法将 com.wirelesscar.trailser.v1_0.domain.ProviderList 的实例从 [Source: [{"id":"1","name":"Posttrack","url":"http:\ dev.posttrack.com","active":true},{"id":"2","name":"Trackunit","url":"http:\dev.trackunit.com","active":真的}]; 行:1,列:1]
所以我的问题。这可能吗?我在哪里错了。
先谢谢了!
java - Vertx 3 - Java 序列化大对象
Vertx 3 新手。我正在使用 Java API。该用例用于通常处理大型对象 (POJO) 的报告应用程序。这些 POJO 包含要导出为 PDF、CSV 等的数据,这些通常是地图列表。我想知道是否必须通过 EventBus 将数据异步传递到不同的 Verticle,这将产生序列化/反序列化的成本。在处理大型对象时是否有任何提示/技巧,以便我们不会为序列化/反序列化带来巨大的开销?
java - 使用 Jackson (JAX-RS) 将 JSON 属性映射到方法参数
我在 JAX-RS 项目中使用 Jackson 2,并且我有一个方法期望 JSON 具有这种结构:
我能够使用自定义包装类将其映射到对象:
是否可以避免使用自定义类,并让 Jackson 将actor
andmovie
属性直接映射到参数?
然后我会使用这样的方法:
java - 使用 Spring Boot、Jackson 和 Hibernate 的多对多关系
我正在使用 Spring Boot 和 Hibernate 开发一个休息项目,目前正在尝试弄清楚如何处理我的 json 序列化。
上面 ERD 中显示的模式由 Hibernate 映射并且工作正常。
当我向控制器发出获取请求时,就会出现问题。我的理解是 Spring 现在尝试使用 Jackson 序列化对象链。因为父对象和子对象都有一个属性,所以我们发现自己遇到了一个无限递归循环。
现在我研究了@JsonIgnore、@JsonView、@JsonManagedReference 和@JsonBackReference,但这些似乎只适用于一对多关系。
我正在寻找的是一种情况,例如,当我向 GET 请求时/users/{id}
,我得到了用户对象,包括它的所有关系属性(我们称之为完整对象),但关系属性本身并没有显示它们的关系-属性(最小化对象)。这适用于上面提到的注释,但是我如何使这个工作也以另一种方式工作呢?
期望的响应:/users/{id}
期望的响应/userrole/{id}
一般来说:当直接向实体发出请求时,我想要一个完整的对象,而当间接请求时,我想要一个最小化的对象。
有任何想法吗?我希望我的解释足够清楚。
更新
评论部分中要求的区域、用户和用户角色 POJO。
用户
用户角色
区域
spring - Spring 不使用 RESTful Web 服务,而是正确反序列化相应的字符串,为什么?
我正在尝试使用RESTful Web Service
with Spring
,我的参考代码是本指南中的参考代码。我正在询问的服务返回JSON
如下:
我创建了以下对象(为简洁起见,省略了它们的所有方法):
使用以下代码,我可以成功反序列化一个Message
对象:
正如我在日志中看到的:
如果我尝试RESTful Web Service
使用以下代码直接连接到:
我观察到以下错误:
我在网上和这个网站上搜索以找到解决方案,但我想不出任何能带来有意义结果的关键字......有什么帮助吗?
为什么我会收到此错误? 如何解决?
谢谢!
PS:我只是尝试实现一个dumb service
连接到该remote service
服务并将该服务接收的JSON作为字符串返回的a,并且我修改了decode service
已经能够反序列化JSON以从该dumb service
而不是从该中获取数据remote service
并且它可以工作!我大吃一惊!这没有意义!无论如何,作为参考,代码如下(请告诉我是否可以避免使用dumb service
):
json - Jackson 映射器扩展 LocalDate
我们有一个使用 LocalDate 定义的 DTO:
我们有一个 ObjectMapper 定义如下的代码:
我们的 pom.xml 文件中包含所有 jackson-datababindm 核心 jsr310:
因此,当我将对象转换为 JSON 字符串时:
dob 将 JSON 字符串写入为:
"dob":{ "year": 1964, "month": "FEBRUARY", "chronology": { "calendarType": "iso8601", "id": "ISO" }, "monthValue": 2, "dayOfMonth" :13,“dayOfWeek”:“THURSDAY”,“era”:“CE”,“dayOfYear”:44,“leapYear”:true}
而不是: "dob":"1964-02-13" 这是正确的。
所以,我不确定我是如何做到这一点的?
我想确保写出的日期是正确的,所以我可以重新解析回 LocalDate。或者,有没有办法可以获取现有的 JSON(扩展)并将其解析回 LocalDate?
谢谢!
java - 杰克逊按类型序列化并混合?
我有一个像这样的 json 文件,需要由 Jackson 将其转换为 Java 用户实例。
我在我的班级“用户”中有这个:
我如何告诉杰克逊生成 json-data-property 的数据实例,如果 json-type-property 的值被称为“对象”并生成一个 List-Instance,如果 json-type-property 的值被调用“列表”。