2015-04-08 5 views
1

Я соответствие около 90 свойств из вложенного JSON-объекта к классу модели с использованием динамики и JObject.Parse:Назначение JSon свойства объекта к модели

dynamic json = JObject.Parse(JsonObjectAsString); 
return new Foo() { 
    prop1 = json.summer.temperature, 
    prop2 = json.winter.temperature, 
    ... 
    prop100 = json.autumn.temperature 
} 

Это очень медленно, но только на первый запуск. Во втором запуске выдается новый JSON-Object (такая же структура, но разные значения), и это мгновенно присваивается соответствующим свойствам модели.

Почему это? Что я могу сделать, чтобы ускорить первый запуск?

Редактировать: Я уже установил тип сборки для «Release».

+0

Вы можете проанализируйте свой объект JSON напрямую для модели, используя пакет 'newtonsoft' nuget. 'var objData = JsonConvert.DeserializeObject (yourjsondata);' –

+0

Объект JSON не имеет той же структуры, что и моя модель. Его больше, и мне нужны только некоторые (90) свойства. Или я неправильно понял вас? – peter

+0

Вы можете получить свой класс модели из json-данных из http://json2csharp.com/ –

ответ

2

Вы можете разобрать свой JSON-объект непосредственно на модель, используя newtonsoft пакет nuget.

var objData = JsonConvert.DeserializeObject<MyData>(yourjsondata); 

Вы можете получить свой класс модели из данных JSon из http://json2csharp.com/

Вы можете конвертировать с помощью динамического объекта, а

var objData = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(jsonString); 

Или без указания модели Calss

var objData = Newtonsoft.Json.JsonConvert.DeserializeObject(jsonString); 
Смежные вопросы