Подтвердить что ты не робот

Получение значений от 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, но я делаю что-то неправильно, так как у меня нет свойств у него. Что я не получу?

Спасибо,

4b9b3361

Ответ 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);                
}