首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Java中将子节点作为数组将XML转换为JSON

可以通过使用第三方库来实现。以下是一个示例代码,使用Jackson库将XML转换为JSON:

代码语言:txt
复制
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;

public class XmlToJsonConverter {
    public static void main(String[] args) {
        String xml = "<root><person><name>John</name><age>30</age></person><person><name>Jane</name><age>25</age></person></root>";

        try {
            XmlMapper xmlMapper = new XmlMapper();
            ObjectMapper objectMapper = new ObjectMapper();

            JsonNode rootNode = xmlMapper.readTree(xml);
            ObjectNode jsonNode = objectMapper.createObjectNode();

            if (rootNode.isObject()) {
                jsonNode.put(rootNode.fieldNames().next(), convertNode(rootNode));
            }

            String json = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(jsonNode);
            System.out.println(json);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private static JsonNode convertNode(JsonNode node) {
        ObjectMapper objectMapper = new ObjectMapper();
        ObjectNode objectNode = objectMapper.createObjectNode();

        if (node.isObject()) {
            node.fields().forEachRemaining(entry -> objectNode.set(entry.getKey(), convertNode(entry.getValue())));
        } else if (node.isArray()) {
            ArrayNode arrayNode = objectMapper.createArrayNode();
            node.elements().forEachRemaining(element -> arrayNode.add(convertNode(element)));
            return arrayNode;
        } else if (node.isValueNode()) {
            return node;
        }

        return objectNode;
    }
}

这段代码将XML字符串转换为JSON字符串。它使用了Jackson库中的XmlMapper来解析XML,使用ObjectMapper来构建JSON对象。在转换过程中,如果节点是一个对象,则递归地将其子节点转换为JSON对象;如果节点是一个数组,则将其子节点转换为JSON数组。最后,使用ObjectMapper的writerWithDefaultPrettyPrinter()方法将JSON对象转换为格式化的JSON字符串。

这是一个简单的示例,你可以根据实际需求进行修改和扩展。在实际开发中,你可能需要处理更复杂的XML结构和更多的节点类型。此外,你还可以使用其他的XML和JSON库来实现相同的功能。

腾讯云提供了多个与云计算相关的产品,例如云服务器、云数据库、云存储等。你可以根据具体需求选择适合的产品。以下是一些腾讯云产品的介绍链接:

请注意,以上链接仅供参考,具体产品选择应根据实际需求和情况进行。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的视频

领券