#c# #json.net
#c# #json.net
Вопрос:
Возможно ли десериализовать список с помощью in a list с помощью JsonConvert.DeserializeObject?
Object:
public class BusinessList
{
public long Number{ get; set; }
public string BusinessUnitCode { get; set; }
public List<string> Codes { get; set; }
}
Json:
{"Number":111121,"BusinessUnitCode":"ABC","Codes":["11111-2","14333-8"]}
Deserialization:
var dataList = (List<BusinessList>)JsonConvert.DeserializeObject(reciveObject, typeof(List<BusinessList>), jsonSerializerSettings);
Ошибка:
"Expected a JsonObjectContract or JsonDictionaryContract for
type 'System.Collections.Generic.List`1
[PathResultsPortal.UI.Controllers.AnalyteDetails]',
got 'Newtonsoft.Json.Serialization.JsonArrayContract'."
Если вы удалите список кодов из объекта BusinessList, он работает нормально, похоже, он не может обрабатывать список с помощью in a list, возможно ли это вообще?
Комментарии:
1. Есть ли причина, по которой коды не могут быть строкой []
2. Игнорируйте, я идиот. Я отправлял просто объект BusinessList, но пытался десериализовать в список. Работает нормально, если вы пытаетесь собрать его обратно как тот же объект, который был отправлен. * ПОЩЕЧИНА
Ответ №1:
public class BusinessList
{
[JsonProperty(PropertyName = "Number")]
public long Number{ get; set; }
[JsonProperty(PropertyName = "BusinessUnitCode ")]
public string BusinessUnitCode { get; set; }
[JsonProperty(PropertyName = "Codes ")]
public List<Codes> Codes { get; set; }
}
public class Codes
{
public string Code { get; set; }
}
попробуйте это