[jsonextensionData] позволяет вам сделать, чтобы сериализовать элементы документа JSON, который не обладает соответствующими свойствами на объекте назначения с словарем, который украшен атрибутом [jsonextensionData]. Пример: < /p>
var json = "{\r\n \"sampleClass\":{ \"name\":\"Name\"} ,
\"sampleOtherClass\":{ \"name\":\"OtherName\"} ,\r\n \"X\": \"Jan\"\r\n}";
< /code>
и < /p>
var result =JsonConvert.DeserializeObject(json);
< /code>
и < /p>
public class Test
{
public string X { get; set; }
[JsonExtensionData]
public Dictionary Y { get; set; }
}
< /code>
Словарь должен содержать такие элементы: < /p>
Dictionary students = new Dictionary()
{
{ "sampleClass", new ClassName { Name="MyName" } },
{ "sampleOtherClass", new SampleOtherClass { Name="MyName" } }
};
< /code>
, что означает, что для Node Spectionslass мы хотим создать объектный sampleclass, а рядом с добавлением словаря y. < /p>
В настоящее время значение в словаре - это строка, например. {name: "name"} < /p>
Источник:
https://dotnetfiddle.net/mhu6me
обновление: < /strong> < /p>
[JsonextensionData] Словарь, чтобы десериализовать /сериализовать, он вызывает проблемы, чтобы иметь две коллекции. < /P>
public class Class1
{
public string Code { get; set; }
public string Name { get; set; }
public bool IsActive { get; set; }
[JsonExtensionData]
public Dictionary _JTokenProperty { get; set; }
public Dictionary Properties1 { get; set; } = new Dictionary();
}
Подробнее здесь: https://stackoverflow.com/questions/532 ... th-casting