Десериализовать JSON с известными и неизвестными полями

Имеется следующий результат json: Результат json по умолчанию имеет известный набор полей:

{
    "id": "7908",
    "name": "product name"
}

Но может быть расширен дополнительными полями (в этом примере_unknown_field_name_1 а также_unknown_field_name_2) из которых имена не известны при запросе результата.

{
    "id": "7908",
    "name": "product name",
    "_unknown_field_name_1": "some value",
    "_unknown_field_name_2": "some value"
}

Я хотел бы, чтобы результат json был сериализован и десериализован в класс и из класса со свойствами для известных полей и сопоставил неизвестные поля (для которых нет свойств) со свойством (или несколькими свойствами), таким как словарь, чтобы они могли быть доступ и изменение.

public class Product
{
    public string id { get; set; }
    public string name { get; set; }
    public Dictionary fields { get; set; }
}

Я думаю, что мне нужен способ подключиться к сериализатору json и выполнить сопоставление для недостающих членов самостоятельно (как для сериализации, так и для десериализации). Я искал различные возможности:

json.net и обработчики пользовательских контрактовне придумаю как это сделать)сериализатор данных (может переопределять только сериализацию, сериализацию)сериализовать в динамический и сделать пользовательское сопоставление (это может работать, но кажется много работы)позволить продукту наследовать от DynamicObject (сериализаторы работают с отражением и не вызывают методы trygetmember и trysetmember) I '

м, используя restsharp, но любой сериализатор может быть подключен.

О, и я не могу изменить результат JSON, иэтот или жеэтот А не было»мне тоже не поможет

Обновить: Это больше похоже на это:http://geekswithblogs.net/DavidHoerster/archive/2011/07/26/json.net-custom-convertersndasha-quick-tour.aspx

Ответы на вопрос(5)

Ваш ответ на вопрос