Допустим, у меня есть это JSON:
{
"top.level": {
"mykey": "3.301.0.97",
"mykey2": "not interested in this one"
},
"another.top.level": "not interested in this either"
}
Я собираюсь использовать Json. NET для анализа этой строки и получения значения "mykey".
У меня есть два вопроса:
- Как мне это сделать без строгого набора текста C#, при этом изящно обрабатывая сценарий ios, где JSON не имеет
top.level
или mykey
? Я не хочу заканчивать тем, что бросил NullReferenceExceptions или подобное. Есть ли более элегантный ответ, чем приведенный ниже?
string answer;
var jsonObj = JObject.Parse(jsonString);
if (jsonObj != null)
{
var topElement = jsonObj["top.level"];
if (topElement != null)
{
var keyElement = topElement["mykey"];
if (keyElement != null)
{
answer = keyElement.Value<string>();
}
}
}
Допустим, я
делаю хочу использовать строгую типизацию. Как мне это сделать, учитывая наличие периода в
top.level
? Какое определение типа я бы создал, учитывая, что я игнорирую
mykey2
и
another.top.level
?
Я также готов выполнять обе эти вещи без использования Json. NET, используя любой из встроенных механизмов сериализации. NET, так что все идеи и предложения приветствуются. Спасибо!