我正在使用来自另一个web服务的XML数据进行java项目。我是杰克逊框架的新手。创建POJO文件,但在映射时会显示错误,如无法识别的字段列。我不知道如何映射我的反应
XML响应
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<CellSet>
<Row key="MNg==">
<Cell column="ZG9ybWFudF9kZXRhaW29u" timestamp="1563189660088">MjAQ==</Cell>
<Cell column="ZG9yxzOkV5ZXBsdXM=" timestamp="1563189660088">RI0</Cell>
<Cell column="ZG9ybWFudF9kZWxzOl=" timestamp="1563189660088"/>
<Cell column="ZG9ybaWxzOlVDSUM=" timestamp="1563189660088">Mg==</Cell>
<Cell column="ZG9ybWFudF9kZXRhYXRl" timestamp="1563189660088">MMQ==</Cell>
<Cell column="ZG9ybWxzOlpveWE=" timestamp="1563189660088"/>
<Cell column="ZzOndhdGNoZXM=" timestamp="1563189660088"/>
</Row>
</CellSet>
细胞集类
@JacksonXmlRootElement(localName = "CellSet")
public final class CellSet {
public CellSet() {}
@JacksonXmlElementWrapper(localName = "Row")
private Row[] rows;
public Row[] getRows() {
return rows;
}
}
排课
public final class Row {
public Row() {}
@JacksonXmlElementWrapper(localName = "Cell")
private Cell[] cells;
public Cell[] getCells() {
return cells;
}
}
细胞类
public final class Cell {
public Cell() {
// TODO Auto-generated constructor stub
}
@JacksonXmlProperty(localName = "column", isAttribute = true)
private String column;
@JacksonXmlProperty(localName = "timestamp", isAttribute = true)
private String timestamp;
public String getColumn() {
return column;
}
public String getTimestamp() {
return timestamp;
}
}
帮我解决这个问题。
首先,查看xml文档和JavaBean树,我假设一个响应可以在CellSet
根元素下有多个Row
元素。
因此,基于上述假设,对象模型存在几个问题。第一种是滥用了@jacksonxmlementwrapper。此注释表示XML元素数组由更高层次的元素包装。所以当你写作的时候
@JacksonXmlElementWrapper(localName = "Row")
private Row[] rows;
杰克逊希望得到这样的信息
<Row> // xml wrapper
<rows> // xml array
<rows>
<rows>
</Row>
实际上,你需要告诉jackson行数组是这样展开的
@JacksonXmlElementWrapper(useWrapping = false)
@JacksonXmlProperty(localName = "Row")
private Row[] rows;
细胞阵列也是如此。
另一个问题是Row
类没有key属性的目标,并且cell
没有cell元素的文本值的目标
@JacksonXmlRootElement(localName = "CellSet")
public class CellSet {
@JacksonXmlElementWrapper(useWrapping = false)
@JacksonXmlProperty(localName = "Row")
public Row[] rows;
}
public class Row {
@JacksonXmlProperty(localName = "key", isAttribute = true)
public String key;
@JacksonXmlElementWrapper(useWrapping = false)
@JacksonXmlProperty(localName = "Cell")
public Cell[] cells;
}
public class Cell {
@JacksonXmlText()
public String value;
@JacksonXmlProperty(localName = "column", isAttribute = true)
public String column;
@JacksonXmlProperty(localName = "timestamp", isAttribute = true)
public String timestamp;
}
最后一点:您的类也缺少setter方法(这是反序列化/反编组,对吗?)在上述解决方案中,为了简洁起见,所有变量都公开了
XML输入文件: XML输入文件转换为XML输出文件。将XML输入文件的firstName、middleName和lastName标签合并为XML Ouput文件的name标签,将XML输入文件的address1、address2、city、state和pincode标签合并为XML Ouput文件的address标签。 我几乎转换了代码,但我在这里与empId作斗争。我已经在XSLT文件中手动输
我想将XML转换为JSON(具体地说,是OAI-PMH响应)。我目前正在使用这个节点。JSXML2JS,但问题是JSON非常冗长,有很多嵌套和数组级别,即使只有一个元素作为子元素,并且永远不会超过一个。问题是,不知道XML文件的模式,因此必须保守。 我的问题是,是否有任何其他(最好是JavaScript)代码可以使用XML架构来指导转换过程?因此,如果架构定义了XML的类型和结构,那么JSON就会
问题内容: 我有一个JSON文件,在此JSON文件中使用解析器将其转换为XML格式,然后写回xml文件 我在Groovy中找不到有关如何执行此操作的任何示例 如果我有如下所示的JSON: 然后,应将其转换为如下所示的XML: 我一直在寻找JSON到XML转换代码 问题答案: 如果您使JSON有效(将名称四舍五入,并且在初始块中加一个逗号),则可以执行此操作以将其转换(专门针对此示例) 我不知道将x
问题内容: 我有一组CSV数据要转换为XML。代码看起来不错,但是输出不够完美。它忽略了一些列,因为它们没有值,并且产生了很长的XML数据行,而不是破坏它。 这是我的CSV数据示例: 而我的代码: 当对以上数据执行此代码时,将产生: 我本人以这种形式安排它,但是输出结果很长。产生的输出应为: 问题答案: 我同意Kennet。 我只是添加了 这在元素之间添加了新行,并允许缩进。 更新 首先,我们要介
我是服务提供商(SP),我们有客户(IDP)向我们提供他们的SAML元数据xml文件。然后,我们希望在数据库中输入OneLogin启用SAML SSO所需的参数。 有没有一种简单的方法可以从IDP元数据xml中提取SP OneLogin SAML参数? 我们希望轻松提取的参数包括: idp\U实体\U id idp\u sso\u target\u url idp\U slo\U target\U
我有以下问题。我不是XSLT方面最伟大的专家,我想成功的是将一个XML从赛贝斯转换为以下内容: Sybase的输出: 我希望它的输出标题保持原样,条目部分不同 这是到目前为止我的XSLT(对不起,不太可能) 也许,有人可以帮我实现我想要的。非常感谢你。