В настоящее время я работаю над приложением .NET Framework 4.7.2.Из ответа веб-службы мне нужно проанализировать данные JSON в List<KeyValuePair<int, Dictionary<string, object>>>
.Этот тип данных важен для дальнейшего выполнения программы, я не могу его изменить.
Данные JSON с динамическими свойствами выглядят так:
{ "data" : [
{"Id":1, Text:"Test1", coolProp: 213 },
{"Id":2, Text:"Test2"},
{"Id":3, Text:"Test3", otherProp: "cool" },
]}
Я пробовал следующее кодирование, но это не такt work:
JsonConvert.DeserializeObject<List<KeyValuePair<int, Dictionary<string, object>>>>(Convert.ToString(JObject.Parse(json)["data"]));
С другой стороны, я могу преобразовать json в ExpandoObject:
var expando = JsonConvert.DeserializeObject<List<ExpandoObject>>(Convert.ToString(JObject.Parse(json)["data"]));
Я думаю о написании частного метода для преобразования ExpandoObject в мой List<KeyValuePair<int, Dictionary<string, object>>>
.
private KeyValuePair<float, List<KeyValuePair<int, Dictionary<string, object>>>> ConvertExpandoToKeyValue(float key, List<ExpandoObject> expando)
{
var result = new KeyValuePair<float, List<KeyValuePair<int, Dictionary<string, object>>>>();
// I don't really know how to convert the expando object to the desired data structure
// Moreover I need to put a float key in the structure: 52.2343
return result;
}
Объект ExpandoObject выглядит следующим образом:
Окончательный результат KeyValuePair<float, List<KeyValuePair<int, Dictionary<string, object>>>>
должен выглядеть следующим образом:
Знаете ли вы, как преобразовать ExpandoObject в нужный тип данных и добавить ключ в начале?
Иливозможно, вы знаете лучший способ преобразовать данные JSON в мою желаемую структуру данных?
Большое спасибо !!