- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一些运行良好的旧代码,但现在我想在域对象中使用@JsonCreator,并且我能够重构所有内容,但我现在陷入了一个问题。在一种情况下,我的 Json 结构如下:
[{
"name" : "John",
"emailAddress" :"stucked@gmail.com"
}]
但是在java后端我有这样的结构:
class Employee {
public final String name;
public final EmailAddress emailAddress;
Employee(final String name, final EmailAddress emailAddress) {
this.name = name;
this.emailAddress = emailAddress;
}
Employee() {
this(null, null)
}
}
class EmailAddress {
public final String address;
EmailAddress(final String address) {
this.address = address;
}
EmailAddress() {
this(null);
}
}
所以我正在尝试:
class Employee {
public final String name;
public final EmailAddress emailAddress;
@JsonCreator
Employee(@JsonProperty("name")final String name,
@JsonProperty("emailAddress")final EmailAddress emailAddress) {
this.name = name;
this.emailAddress = emailAddress;
}
}
class EmailAddress {
public final String address;
@JsonCreator
EmailAddress(@JsonProperty("address")final String address) {
this.address = address;
}
}
现在的问题是在 Employee 域对象中使用 @JsonProperty 和“emailAddress”字段,然后在 EmailAddress 对象中使用 @JsonProperty 和“address”,因为在 Json 中我没有任何“address”属性,因此会出现 JsonParsing 错误。
如果我将 emailAddress 声明为 String 而不是 EmailAddress 并删除 EmailAddress 对象,那么问题可以很容易解决,但 EmailAddress 对象的地址字段在许多其他地方使用,修改需要付出很大的努力,并且有很多这样的情况。还有其他解决办法吗??
最佳答案
那么你的问题到底是什么?如果目标是允许这两者:
"stucked@gmail.com"
{ "address" : "stucked@gmail.com" }
它应该已经可以工作了: jackson 发现,如果找到 JSON 字符串,则可以使用单字符串构造函数;如果找到 JSON 对象,则 setter /字段。您只需确保名称匹配(“地址”与“电子邮件地址”)。
关于java - 将 @JsonCreator 与嵌套 Json 对象一起使用时面临问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29288325/
我正在安装一个 react-app 并面临一些问题。我试图通过删除 /node-modules 来修复它并重新安装,但它仍然给我一些问题。我是一个 ubuntu 用户。请帮我解决一下这个。这是错误日志
首先,我是 C 的初学者,所以如果我的问题看起来很愚蠢,我很抱歉。 我正在学习如何在 C 中使用冒泡排序算法,我通过以下代码: #include int main() { int ctr,
我正在使用 HtmlUnitDriver 打开链接。这是我的代码: HtmlUnitDriver webDriver = new HtmlUnitDriver(); webDriver.get("so
我是 Camel 新手,我已经为分离器编写了代码。我编写了一个 context.xml,其中包含用于映射 POJO 的路由和 Bean,以及一个 FileSplitter.java 文件,其中包含以下
我不断收到错误:TestException.java:8: 错误: 未报告的异常 Throwable;必须被捕获或宣布被抛出 throw new ParentException().initCause
您能看一下this demo吗?让我知道为什么我无法定位所选 anchor 链接的下一个和上一个 section 的 id? 为了获得下一个,我尝试了所有 var target = $(this).
我正在为我们使用 asp.Net MVC 的应用程序尝试 JqGrid。我无法获得数据显示。我不确定是什么问题。 这是我的查看代码: @{ ViewBag.Title = "Sea
我想将网页显示为模式弹出窗口。 Response.Write("detailedresults=window.showModalDialog('NewFile.aspx','Data','left=(
当我尝试从不同域下载视频时,遇到 CORS 错误。我尝试了很多方法来解决它但无法解决。下面是我的js代码。 getVideoFile = function () { var xhr = new XML
我的 ADF Web 应用程序面临兼容性问题。尝试添加元标记 - ' '甚至尝试注入(inject)java脚本来抑制兼容性问题,但没有任何反射(reflect)。下面是java脚本- ` var
在这个项目中,我遇到了一些运行时错误,我厌倦了通过将错误粘贴到谷歌中来解决它并为此获得适当的结果。但是我无法解决这个问题, 和其他代码很好但是 list 文件显示了一些警告。代码是 `
我实现了一个具有三个选项卡的 TabLayout。当我滑动页面时一切正常,当我只使用标签点击来导航时它也有效。但是,当我滑动页面并单击任何先前选择的选项卡时,问题就出现了,只有选项卡指示器更改为新选项
我想要达到的目标:尝试将数据从我的应用程序字段发送到我在 WebAppServer 上的 Servlet。 我面临 ClassCastException 问题,我尝试实现我在相关讨论中在 StackO
JavaScript 代码: if (document.getElementsByClassName('chkaddress').checked) { $('#DivCommunication
我正在尝试使用 Hazelcast 来使用 SqlPredicate。代码片段: private void testHazelCast() { HazelcastInstance ha
当我从服务器访问图像时,收到 403 禁止错误。 如果我访问音频文件,那么我不会收到任何错误。但如果我正在访问图像文件,那么只有我面临这个问题。 请注意,音频文件的权限是0644,图像的权限也具有相同
我想像sql中的通配符搜索一样执行查询。所以我在nodejs和mongoose中使用正则表达式。当我使用硬代码时它可以工作,但是当我放入变量时它就不起作用。问题出在哪里。 硬代码代码 AlertMod
我正在尝试将 BottomNavigationView 与导航编辑器一起使用。我已经按照给定的方式实现了所有内容,但只显示主页,当我更改选项卡时,它不会更改 fragment 。 这是主要的 Acti
这个问题在这里已经有了答案: Enzyme: simple .to.have not working (1 个回答) 10 个月前关闭。 我有一个组件app.tsx import React, { u
我有多个选项卡(A、B、C),并且在加载“C”选项卡时,模型属性应数据绑定(bind)到选项卡“c”。我面临数据绑定(bind)问题。 三个选项卡(A、B、C)位于另一个 View View A 内。
我是一名优秀的程序员,十分优秀!