当前位置: 首页 > 知识库问答 >
问题:

@JsonRootName没有按我想要的那样工作

淳于涛
2023-03-14

这是我的设备

@JsonRootName("Facility")
@XmlAccessorType(XmlAccessType.NONE)
@XmlType(name = "Facility", propOrder = { "id", "name", "totalQuantity" })
public class FacilityDTO implements Serializable {

private static final long serialVersionUID = 1L;

@XmlElement(required = true)
private String id;
@XmlElement(required = true)
private String name;
@XmlElement(required = true)
private double totalQuantity;

public FacilityDTO() {
}

public FacilityDTO(Facility facility) {
    this.name = facility.getName();
    this.totalQuantity = facility.getTotalQuantity();
    this.id = facility.getId();
}// getters setter

这是我的消息正文作者

ByteArrayOutputStream out = new ByteArrayOutputStream();
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new Jdk7Module());
mapper.configure(SerializationFeature.WRAP_ROOT_VALUE, true);
mapper.writeValue(out, object);
int bytesCount = out.size();
byte[] bytes = out.toByteArray();
entityStream.write(bytes);
entityStream.flush();

我的问题是:

  1. 为什么结果似乎不正确?我被放在@JsonRootName(“Facility”)上,并且还启用了包装根特性
  2. 我错过了什么

共有1个答案

云默
2023-03-14

请参阅使用根元素的Jackson JSON反序列化

根据上面,你需要配置反序列化如下:mapper.configure(DerializationFeature.UNWRAP_ROOT_VALUE,true);

 类似资料:
  • 我创建了重置密码页面,用过的输入他的电子邮件,PHP给他发回重置密钥。邮件可以工作,但在我的gmail帐户中它是纯文本的。我希望它以超文本标记语言出现。

  • 下面是一个类和log4j配置: $vi My.java $vi log4j2.xml 在日志/foo.bar.log中出现和消息。这是我所期望的。但是在日志/foo.log中什么都没有出现,我期望那里有消息。在控制台上也什么都没有出现,但是我期望消息。所以它没有像我预期的那样工作。那么我的错误是什么? 还有LogManager的论点。getLogger必须是记录器的名称。但我也看到了论点是类的例子

  • 我正在使用wedriveri o 4.5: 我需要等到某个元素存在,如果它不存在,处理这种情况。 例如: 但如果页面上不存在元素,webdriver会将我的测试标记为失败,并显示消息:“超时10000毫秒。”。尝试减少运行时间或增加测试规格的超时时间(http://webdriver.io/guide/testrunner/timeouts.html); 如果回复promise,确保其得到解决 >

  • 我正在学习这个教程。net电影教程,我的模型中有两个简单的文件。 另一个是Visual Studio给我的帐户模型: 问题是......如果我再加上一句话 对于UserProfile类,我在迁移中没有得到任何更改。。。。这是因为迁移只更新MovieDBContext中的类。。。。因此,我必须补充如下内容: 问题是,在另一个项目中,我试图更新会计模型,并尝试了这个解决方案,但它没有工作......有

  • 这是我的方法compute(),它接受月数: 要提供上下文, 余额:是员工每月初获得的固定月薪 我的输入示例如下: 如果比尔·乔布斯(BillJobs)是余额为54K的员工,每年从银行获得0%和1.2%的年利率,计算时间将超过13个月。我的期望输出应该是: 其中706933.71的余额是在调用compute方法时计算出来的,但是我最终得到 13个月后的余额为705852.63。

  • 问题内容: 我正在使用Java和Selenium编写测试。我需要将另一个元素内的最后一个元素,所以我使用函数,但问题是,当我申请时,它并不总是带给我最后一个: 至 得到,它带给我: 但是当我将其应用于: 它带给我: 问题答案: 这是XPath混乱的常见原因。 首先是简单的部分: 选择文档中的所有元素。 选择文档中属于元素后代的所有元素。 到目前为止,正常的东西。 接下来是棘手的部分: 要在 兄弟姐