Я использую API, который предоставляет полезную нагрузку JSON. Одним из свойств JSON является элемент данных, поэтому я не могу десериализовать полезную нагрузку без добавления дополнительных классов.
Вот JSON:
{
"company": "ABC Inc.",
"packages": {
"$package1": {
"code": "$package1",
"name": "Foo",
"price": 1000
},
"$package2": {
"code": "$package2",
"name": "Bar",
"price": 2000
},
"$package3": {
"code": "$package3",
"name": "Another",
"price": 3000
}
}
}
Я могу сериализовать с помощью Newtonsoft.Json со следующими классами:
public class Rootobject
{
public string company { get; set; }
public Packages packages { get; set; }
}
public class Packages
{
public Package1 package1 { get; set; }
public Package2 package2 { get; set; }
public Package3 package3 { get; set; }
}
public class Package1
{
public string code { get; set; }
public string name { get; set; }
public int price { get; set; }
}
public class Package2
{
public string code { get; set; }
public string name { get; set; }
public int price { get; set; }
}
public class Package3
{
public string code { get; set; }
public string name { get; set; }
public int price { get; set; }
}
Используя этот подход, я могу десериализовать с помощью Newtonsoft.Json, но если позже добавится «package4», то мне потребуется внести изменения в код.
Должен ли я отодвинуть разработчика этого API и настаивать на массиве пакетов, а не на том, как он реализован в настоящее время?