如何将 json 转换为 json-ld in.Net

How do I convert json to json-ld in.Net

我正在尝试将 json 转换为 json-ld。到目前为止,我已经尝试了来自 nuget 的 json-ld.net 库(它是 nuget3 的一部分):https://www.nuget.org/packages/json-ld.net/

var jtoken = JsonLD.Util.JSONUtils.FromString(response);
var options = new JsonLdOptions();
options.SetBase("http://json-ld.org/test-suite/tests/");
options.SetProduceGeneralizedRdf(true);
var context = JsonLD.Util.JSONUtils.FromString(Properties.Resources.jasonldcontext);
options.SetExpandContext((JObject)context);
var jtokenout = JsonLdProcessor.Compact(jtoken, context, options);
var sz = JSONUtils.ToString(jtokenout);

上下文资源:

{"@context": {
"ex": "http://example.org/",
"term1": {"@id": "ex:term1", "@type": "ex:datatype"},
"term2": {"@id": "ex:term2", "@type": "@id"}
}}

我的 json 存在且有效。它来自 REST 服务。 (响应),并填充 jtoken。但是,sz 只包含上下文:

context":{"ex":"http://example.org/","term1":
{"@id":"ex:term1","@type":"ex:datatype"},"term2":
{"@id":"ex:term2","@type":"@id"}}}

MXTires Microdata .NET 是一个很好的工具。以 JSON-LD.

的形式将 .Net 类 转换为 Schema.org 结构化数据

Nuget Link | Usage Link

我想我提出的问题不正确。 JSON-LD 的 POCO 可以通过 GitHub 上的 JsonLD.Entities 轻松完成。如果我从 POCO 开始或将 JSON 转换为 POCO,那么这很容易。

var person = new Person
{
Id = new Uri("http://t-code.pl/#tomasz"),
Name = "Tomasz",
LastName = "Pluskiewicz"
};
var @context = JObject.Parse("{ '@context': 'http://example.org/context/Person' }");
var contextProvider = new StaticContextProvider();
contextProvider.SetContext(typeof(Person), @context);

// when
IEntitySerializer serializer = new EntitySerializer(contextProvider);
dynamic json = serializer.Serialize(person);