2016-07-10 5 views
0

Итак, приложение, с которым я сейчас работаю, будет делать много запросов, чтобы все возвращали json, было бы целесообразно создать класс, содержащий свойства для каждого конкретного запроса, который будет возвращен json, который может быть преобразован в свойства этого класса?Deserializing Json в объекты

Например, у меня есть 2 запроса, один из которых возвращает имя, фамилию и роль задания, и у меня есть другой запрос, который возвращает название компании, бизнес-адрес и бизнес-почтовый индекс, было бы хорошо:

class BusinessRetrieval { 
    public string BusinessLocation{ get; set; } 
    public string BusinessPostCode { get; set; } 
} 

class EmployeeRetrieval { 
    public string Firstname { get; set; } 
    public string Surname { get; set;} 
    public string Postcode { get; set; } 
} 

Так что теперь у меня есть 2 классов, которые определяют свойства, которые будут отправлены обратно после того, как запрос был сделан, теперь это ОК, чтобы просто сделать:

BusinessRetrieval business = (BusinessRetrieval)JsonConvert.DeserializeObject(businessResponse, typeof(BusinessRetrieval)); 
EmployeeRetrieval employee = (EmployeeRetrieval)JsonConvert.DeserializeObject(employeeResponse, typeof(EmployeeRetrieval)); 

что я спрашиваю вот это ОК, чтобы обойти это? Я собираюсь иметь дело с большим количеством запросов (10-15), и я планирую сделать класс для каждого, который описывает свойства, которые каждый ответ вернет, я чувствую, что это будет хороший способ его структурирования ,

В порядке?

+0

Вы просите разрешения? Вы должны быть более конкретными в отношении ваших проблем. – Gigi

+0

Да. Я хочу знать, хорошо ли это делать. –

+0

«ОК» субъективно. Смотрите: http://stackoverflow.com/help/dont-ask – Gigi

ответ

0

Я думаю, что это не только нормально, я думаю, что это была бы лучшая практика, поэтому вы можете без проблем проходить этот объект с помощью любых методов.

+0

Вот что я думал. Спасибо за ваш вход –

1

Да, это единственный разумный способ справиться с этим, чтобы сделать ваш код безопасным. Хотя вы не можете отличить результат не общего DeserializeObject от выбранного вами типа - он выкинет исключение. Вместо этого используйте общую версию DeserializeObject:

BusinessRetrieval business = JsonConvert.DeserializeObject<BusinessRetrieval>(businessResponse); 
EmployeeRetrieval employee = JsonConvert.DeserializeObject<EmployeeRetrieval>(employeeResponse); 
+0

О да, это намного лучше. Первоначально я делал: EmployeeRetrieval employee = (EmployeeRetrieval) JsonConvert.DeserializeObject (employeeResponse, typeof (EmployeeRetrieval)); –

Смежные вопросы