Я погуглил, но не нашел удовлетворительного ответа. В настоящее время я изучаю C# и фреймворк. Net (я работаю как fullstack-dev с Javascript / node) для удовольствия, но я не уверен, как вы правильно go о разборе JSON из http-запрос в следующей структуре:
{
"result": {
"data": {
"type": "articles",
"time": "05/27/2020",
"attributes": {
"timezone": "UTC",
"length": "3",
},
"articles": [
{ "type": "news", "created": "04/26/2019", "author": "Dohn Joe" },
{ "type": "news", "created": "04/26/2019", "author": "Dohn Joe" },
{ "type": "news", "created": "04/26/2019", "author": "Dohn Joe" }
]
}
}
}
Я хочу получить и использовать массив статей (возможно, превратить его в класс, который его хранит / отправляет в базу данных или что-то в этом роде). В настоящее время я получаю http-запрос, а затем превращаю его в JSON
dynamic jsonResponse = JObject.Parse(result);
А затем, в javascript, вы обычно выполняете оператор if, чтобы вроде бы подтвердить, что вы получили ожидаемый ответ.
if (jsonResponse &&
jsonResponse.result &&
jsonResponse.result.data &&
jsonResponse.result.data.articles &&
jsonResponse.result.data.articles.length) {
//Parse the articles
}
Я читал о способах в C#, где вы создаете «многоуровневые» классы, которые следуют схеме JSON, а затем просто превращаете весь ответ в класс / объект. Это кажется странным, поскольку меня интересует только часть статей и больше ничего, поэтому я хочу проверить, существуют ли статьи на самом деле.
Используется ли тот же оператор if (более или менее) для проверки правильности этого в C#, или есть какой-либо другой стандартный способ сделать это, о котором я еще не читал? Или, может быть, чаще всего используется многоуровневый подход, просто мне это кажется странным? Но даже если я превращу его в класс / объект, мне все равно нужно будет проверить, действительно ли элементы там есть, верно? Я также видел, как люди просто обертывали это в try-catch, а затем пытались получить доступ к статьям без операторов if, позволяя try-catch решать любые проблемы. Я немного запутался в разных ответах, которые я читал, как правильно обрабатывать ответ json на HTTP-запрос в этом случае?
Помощь очень ценится! Спасибо.