Страницы

Поиск по вопросам

четверг, 9 апреля 2020 г.

Нестандартная сериализация/десериализация при помощи newtonsoft json

#c_sharp #json #serialize

                    
Есть следующие классы:

public sealed class User
{
    public int Id { get; set; }
    public Schema Extensions { get; set; }  
}

public sealed class UserProperty
{
    public string Id { get; set; }
    public object Value { get; set; }
}

public sealed class Schema
{
    public string Name { get; set; }
    public List Properties { get; set; } 
}


Задается вот так:

 var user = new User
 {
    Id = 1,
    Extensions = new Schema
    {
      Name = "urn:scim:schemas:custom:1.0",
      Properties = new List { new UserProperty { Id = "A", Value = 1} }

    }
 };


Необходимо получить json следующего вида:

{
  "Id": 1,
  "urn:scim:schemas:custom:1.0": {
     "A": 1
  }
}


Как это можно сделать при помощи библиотеки newtonsoft? И соответственно потом десериализовать
в структуры, описанные выше? 
    


Ответы

Ответ 1



Вам нужен JsonExtensionDataAttribute. Но тут есть ограничение - насколько я понимаю, он может быть только типа, реализующего IDictionary.

Комментариев нет:

Отправить комментарий