You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何添加多个同名ObjectNode节点以生成符合要求的XML结构

问题根因
  • ObjectNode是基于键值对的JSON对象结构,键具备唯一性,循环中重复调用putObject("feature")时,后写入的节点会直接覆盖之前的同名节点,所以最终只会保留一个feature节点。
实现方案

Jackson的XML序列化器会自动将ArrayNode类型的数组元素转换为多个同名的XML子节点,你可以按照如下方式调整代码:

ObjectNode featureSetNode = ((ObjectNode) sequenceNode).putObject("feature_set");
// 先创建feature对应的数组节点,用于存储多个feature子节点
ArrayNode featureArray = featureSetNode.putArray("feature");

for (SimpleFeature feature : simpleFeatures ) {
    // 生成单个feature对象节点,添加到数组中
    ObjectNode featureNode = featureArray.addObject();
    // 此处继续为featureNode填充所需的属性、子节点即可
}

注意:需要使用Jackson XML模块提供的XmlMapper执行序列化操作,普通JSON序列化的ObjectMapper无法输出符合要求的XML结构。

内容的提问来源于stack exchange,提问作者user453575457

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 05:36:07