Десериализация JSON в анонимный объект в C # - PullRequest
15 голосов
/ 13 июля 2011

Как преобразовать строку данных в формате json в анонимный объект ?

Ответы [ 4 ]

11 голосов
/ 13 июля 2011

C # 4.0 добавляет динамические объекты, которые можно использовать. Посмотрите на это .

8 голосов
/ 15 октября 2013

с использованием динамики выглядит примерно так:

string jsonString = "{\"dateStamp\":\"2010/01/01\", \"Message\": \"hello\" }";
dynamic myObject = JsonConvert.DeserializeObject<dynamic>(jsonString);

DateTime dateStamp = Convert.ToDateTime(myObject.dateStamp);
string Message = myObject.Message;
1 голос
/ 29 августа 2017

vb.net с использованием Newtonsoft.Json:

dim jsonstring = "..."
dim foo As JObject = JObject.Parse(jsonstring)
dim value1 As JToken = foo("key")


e.g.:
dim jsonstring = "{"MESSAGE":{"SIZE":"123","TYP":"Text"}}"
dim foo = JObject.Parse(jsonstring)
dim messagesize As String = foo("MESSAGE")("SIZE").ToString()
'now in messagesize is stored 123 as String

Так что вам не нужна фиксированная структура, но вы должны знать, что там можно найти.

Но если выдаже не знаю, что внутри, чем вы можете перечислить через этот JObject с элементами навигации, например .first (), .next () Например: вы могли бы реализовать классический поиск в глубину и экранирование JObject

(для преобразования vb.net в c #: http://converter.telerik.com/)

0 голосов
/ 13 июля 2011

Я думаю, что ближайший вы можете получить dynamic в .NET 4.0

Причина, по которой анонимные объекты не будут работать, заключается в том, что они по-прежнему статически типизированы, и компилятор не может предоставить intellisense для класса, который существует только в виде строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...