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

求兼容多Java版本的JSON转.xml后缀RDF文档简单实现示例

Java实现JSON转RDF XML(兼容Java8/11/17)

核心思路

用RDF4J的JSONLD解析器将JSON-LD(带语义上下文的JSON)转换为RDF模型,再通过RDF4J的XML写入器输出为.xml后缀的RDF/XML文档。选择RDF4J是因为它跨Java版本兼容、依赖轻量化,且API简洁易上手。

依赖配置(Maven)

仅需引入3个核心依赖,无冗余包,总大小约几MB:

<dependencies>
    <!-- RDF4J核心模型API -->
    <dependency>
        <groupId>org.eclipse.rdf4j</groupId>
        <artifactId>rdf4j-model</artifactId>
        <version>4.3.4</version> <!-- 该版本全面兼容Java8/11/17 -->
    </dependency>
    <!-- JSONLD格式解析器 -->
    <dependency>
        <groupId>org.eclipse.rdf4j</groupId>
        <artifactId>rdf4j-rio-jsonld</artifactId>
        <version>4.3.4</version>
    </dependency>
    <!-- RDF/XML格式写入器 -->
    <dependency>
        <groupId>org.eclipse.rdf4j</groupId>
        <artifactId>rdf4j-rio-rdfxml</artifactId>
        <version>4.3.4</version>
    </dependency>
</dependencies>

代码实现

示例1:从JSON字符串转RDF XML文件

import org.eclipse.rdf4j.model.Model;
import org.eclipse.rdf4j.rio.RDFFormat;
import org.eclipse.rdf4j.rio.Rio;

import java.io.ByteArrayInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

public class JsonLdToRdfXml {
    public static void main(String[] args) {
        // 示例合法JSON-LD数据(必须包含@context定义语义映射)
        String jsonLdContent = """
                {
                  "@context": "https://schema.org/",
                  "@type": "Book",
                  "name": "Java Programming Guide",
                  "author": {
                    "@type": "Person",
                    "name": "Jane Smith"
                  },
                  "publisher": "Tech Books Inc."
                }
                """;

        try {
            // 1. 解析JSON-LD为RDF模型
            InputStream input = new ByteArrayInputStream(jsonLdContent.getBytes());
            Model rdfModel = Rio.parse(input, "", RDFFormat.JSONLD);

            // 2. 将RDF模型写入为.xml后缀的RDF/XML文件
            OutputStream output = new FileOutputStream("book.rdf.xml");
            Rio.write(rdfModel, output, RDFFormat.RDFXML);

            System.out.println("转换完成,输出文件:book.rdf.xml");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

示例2:从JSON文件转RDF XML文件

如果JSON数据来自本地文件,只需替换输入流部分:

// 替换示例1中的输入流创建代码
InputStream input = new FileInputStream("input.json");

关键注意事项

  • JSON格式要求:必须是JSON-LD(带@context字段),普通JSON无法直接转换为RDF——因为RDF需要明确的语义映射规则。如果是普通JSON,需先手动添加@context或编写代码完成普通JSON到JSON-LD的映射。
  • 版本兼容验证:RDF4J 4.x系列在Java8、11、17环境下无需额外配置,直接编译运行即可。
  • 异常优化:实际场景中建议细化异常处理(比如捕获文件不存在、JSON格式非法等特定异常)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 15:11:09