Получение значений от Json.net
У меня есть ситуация, когда я получу некоторые известные значения из api в json, но тогда вам нужно получить набор неизвестных значений (например, пароль и ошибка электронной почты в этом json):
{"error":{"httpCode":400,"message":"Invalid parameters"}, "message":{"errors":
{"password":"is too short"
,"email":"is invalid"}}}
Я знаю, что всегда буду получать "error" и "message.errors". Я заранее не знаю, что означают маркеры/свойства (пароль, электронная почта)
Я пытаюсь использовать Json.net для доступа к ним и просто писать в построитель строк:
"пароль слишком короткий, электронная почта недействительна"
JObject root = JObject.Parse(<json string>);
этот код дает мне root.Properties, но я делаю что-то неправильно, так как у меня нет свойств у него. Что я не получу?
Спасибо,
Ответы
Ответ 1
Возможно, лучший способ сделать это, но следующий код помог мне извлечь ключ и значение пар ключей в массиве ошибок:
string data =
@"{""error"":{""httpCode"":400,""message"":""Invalid parameters""}, ""message"":{""errors"":
{""password"":""is too short""
,""email"":""is invalid""}}}";
JObject jObject = JObject.Parse(data);
JObject errors = (JObject)jObject["message"]["errors"];
foreach(var error in errors)
{
MessageBox.Show(p.Key + p.Value);
}