#json.net
#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.Свойства, но я делаю что-то неправильно, поскольку я не получаю свойства от его дочерних элементов. Чего я не получаю?
Спасибо,
Ответ №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);
}