Если вы используете JSON.NET со старой версией, которая не поддерживала JObject.
Это еще один простой способ создать динамический объект из JSON: https://github.com/chsword/jdynamic
Установка NuGet
PM> Install-Package JDynamic
Поддержка использования строкового индекса для доступа к члену, например:
dynamic json = new JDynamic("{a:{a:1}}");
Assert.AreEqual(1, json["a"]["a"]);
Контрольный пример
И вы можете использовать эту утилиту следующим образом:
Получитьпрямое значение
dynamic json = new JDynamic("1");
//json.Value
2. Получить элемент в объекте json
dynamic json = new JDynamic("{a:'abc'}");
//json.a is a string "abc"
dynamic json = new JDynamic("{a:3.1416}");
//json.a is 3.1416m
dynamic json = new JDynamic("{a:1}");
//json.a is integer: 1
3.IEnumerable
dynamic json = new JDynamic("[1,2,3]");
/json.Length/json.Count is 3
//And you can use json[0]/ json[2] to get the elements
dynamic json = new JDynamic("{a:[1,2,3]}");
//json.a.Length /json.a.Count is 3.
//And you can use json.a[0]/ json.a[2] to get the elements
dynamic json = new JDynamic("[{b:1},{c:1}]");
//json.Length/json.Count is 2.
//And you can use the json[0].b/json[1].c to get the num.
Другое
dynamic json = new JDynamic("{a:{a:1} }");
//json.a.a is 1.