编辑:我改变了主意。我将寻找一种方法生成Java类,并将JSON作为该类对象加载。
我刚刚发现存在一种名为JSON-LD
的JSON
变体。
它似乎是一种更加结构化的定义JSON
的方式,像XSD
一样,它带有一个关联模式,让我想起了XML
。
我能否从JSON-LD
创建一个Java类,在运行时加载它,并用它来将JSON-LD
转换为该类的实例化?
我阅读了两个实现的文档,但没有找到相关内容。也许我读错了?
我通过谷歌搜索找到了一个库,可以将JSON-LD解码为“未定义”的对象
。
// Open a valid json(-ld) input file
InputStream inputStream = new FileInputStream("input.json");
// Read the file into an Object (The type of this object will be a List, Map, String, Boolean,
// Number or null depending on the root object in the file).
Object jsonObject = JsonUtils.fromInputStream(inputStream);
// Create a context JSON map containing prefixes and definitions
Map context = new HashMap();
// Customise context...
// Create an instance of JsonLdOptions with the standard JSON-LD options
JsonLdOptions options = new JsonLdOptions();
// Customise options...
// Call whichever JSONLD function you want! (e.g. compact)
Object compact = JsonLdProcessor.compact(jsonObject, context, options);
// Print out the result (or don't, it's your call!)
System.out.println(JsonUtils.toPrettyString(compact));
https://github.com/jsonld-java/jsonld-java
显然,它可以从字符串中获取信息,就好像从文件或其他来源读取一样。我无法告诉你如何访问object
的内容。文档似乎还算不错。
这似乎是一个活跃的项目,最近的提交时间只有4天,有30个贡献者。如果这对您有任何影响,许可证是BSD 3-Clause。
我与该项目没有任何关联。我既不是作者,也没有发起任何拉取请求。这只是我找到的东西。
祝你好运,希望这能帮到你!
Object jsonObject
吗?有没有一种方法可以从 JSON-LD 中创建该类? - Marco Sulla{JSON-LD for Jackson}-> [Java Object]
。 - Marco Sulla
com.github.jsonld-java:json-ld
API作为解析器。如果您不想使用任何RDF API,只想使用解析器,那么也许您需要编写自己的模型-API。 - ssz