Вы не можете использовать IList
или List
здесь, потому что в вашем исходном JSON нет [ ]
, что является обязательным требованием, если вы хотите разобрать такую коллекцию.Другими словами, без [ ]
вы не сможете разобрать коллекцию, по крайней мере, не пройдя через множество циклов.
Вместо этого вам нужно использовать словарь, как уже предлагалось в комментариях.
Примечание: я использовал Newtonsoft JsonConvert, потому что вы не указали, что такое ваш анализатор, но это не должно иметь большого значения или не повлияет на мои аргументы.
Рабочий код:
var json = "{ \"spec\": { \"SOMETHING WITH SPACES\" : \"10\" } }";
var someObj = JsonConvert.DeserializeObject<SomeObject>(json);
public class SomeObject
{
public Dictionary<string, object> spec{ get; set; }
}
После этого вы можете преобразовать свойство spec
в IEnumerable
и просмотреть все найденное:
foreach (var pair in someObj.spec as IEnumerable<KeyValuePair<string, object>>)
{
Console.WriteLine(pair.Key + " -> " + pair.Value);
}
Или даже преобразовать его в список:
var list = someObj.spec.ToList();
foreach (var pair in list)
{
Console.WriteLine(pair.Key + " -> " + pair.Value);
}
.NET Fiddle: https://dotnetfiddle.net/15l2R3