Я получаю следующий JSON из веб-API, в котором перечислены ошибки, обнаруженные в POST. В ModelState
может быть более одной пары ключ-значение, в зависимости от того, сколько ошибок найдено. Единственная проблема заключается в том, что вокруг значений есть квадратные скобки. Поэтому, когда я deserialize с JSON.net, есть ошибка Unexpected token
.Deserialize JSON с квадратными скобками вокруг строковых значений
Мое решение теперь состоит в том, чтобы выполнить поиск и замену для этих скобок, а затем десериализовать, что действительно работает. Но есть ли лучшее решение?
Мой класс
public class Error
{
public string Message { get; set; }
public Dictionary<string, string> ModelState { get; set; }
}
JSON
{
"Message": "The request is invalid.",
"ModelState": {
"member.Gender": ["An error has occurred."],
"member.MemberID": ["The MemberID field is required."],
"member.BoardMemberID": ["The BoardMemberID field is required."],
}
}
Как я десериализации Сейчас
Error error = JsonConvert.DeserializeObject<Error>(jsonString.Replace("[", "").Replace("]", ""));
[подробнее] (http://stackoverflow.com/questions/36688321/what-is-the-purose-of-using-square-brackets-in-json) – stuartd