using System.Collections.Generic;
using System.Text.Json.Serialization;
public class JsonLdContext
public IDictionary<string, JsonElement> AdditionalData { get; set; }
[JsonPropertyName("@context")]
public JsonLdContext Context { get; set; }
public IDictionary<string, JsonElement> AdditionalData { get; set; }
private const string JsonLdTestDataThatWorks = @"{
""@context"": { ""something"": ""https://www.w3.org/ns/did/v1"" },
""something"": ""something""
private const string JsonLdTestDataThatFails = @"{
""@context"": ""https://www.w3.org/ns/did/v1"",
""something"": ""something""
private const string JsonLdTestDataThatFails2 = @"{
""@context"": [ ""https://www.w3.org/ns/did/v1"", ""https://www.w3.org/ns/did/v1"" ],
""something"": ""something""
public static void Main()
var options = new JsonSerializerOptions();
var successDoc = JsonSerializer.Deserialize<JsonLdDoc>(JsonLdTestDataThatWorks, options);
Console.WriteLine($"Failed to parse {nameof(JsonLdTestDataThatWorks)} due to {ex}");
var failureDoc = JsonSerializer.Deserialize<JsonLdDoc>(JsonLdTestDataThatFails, options);
Console.WriteLine($"Failed to parse {nameof(JsonLdTestDataThatFails)} due to {ex}");
var failureDoc = JsonSerializer.Deserialize<JsonLdDoc>(JsonLdTestDataThatFails2, options);
Console.WriteLine($"Failed to parse {nameof(JsonLdTestDataThatFails2)} due to {ex}");