我有一个模型,其中包含和不同对象类型的数组。父对象反序列化正常,但嵌套数组不断失败。JSONConvert使用嵌套数组的DeserializeObject
这里是我的对象:
public class VenueRoomViewModel
{
public string Name { get; set; }
public decimal HourCost { get; set; }
public decimal DayCost { get; set; }
public int MaxDelegate { get; set; }
public string SpecialNotes { get; set; }
public string Status { get; set; }
[JsonProperty("AssociatedFacilities")]
public List<FacilityViewModel> AssociatedFacilities { get; set; }
}
public class FacilityViewModel
{
public string FacilityName { get; set; }
public int FacilityNo { get; set; }
public string FacilityStatus { get; set; }
}
我尝试和解析这样的JSON:
VenueRoomViewModel myVM = sonConvert.DeserializeObject<VenueRoomViewModel>(jsonModel);
这里是它试图解析JSON的副本:
"{\"State\":1,\"No\":\"0\",\"Name\":\"test\",\"HourCost\":\"12\",\"DayCost\":\"12\",\"MaxDelegate\":\"12\",\"SpecialNotes\":\"blah blah blah\",\"Status\":\"A\",\"AssociatedFacilities\":\"[{\\\"FacilityStatus\\\":1,\\\"FacilityNo\\\":\\\"1\\\",\\\"FacilityName\\\":\\\"Overhead Projector\\\"},{\\\"FacilityStatus\\\":1,\\\"FacilityNo\\\":\\\"5\\\",\\\"FacilityName\\\":\\\"New Facility\\\"}]\",\"VenueNo\":\"2\"}"
如果我单独解析对象,那么它工作正常,但我似乎无法让它工作只是解析条ng
var converter = new ExpandoObjectConverter();
dynamic obj = JsonConvert.DeserializeObject<ExpandoObject>(jsonModel, converter);
List<FacilityViewModel> facilities = JsonConvert.DeserializeObject<List<FacilityViewModel>>(obj.AssociatedFacilities);
这解析了嵌套数组,所以我认为json是可以的。
下面是它的工作https://dotnetfiddle.net/znMYDZ
'FacilityStatus'是数据中的'int',但模型中的'string'? 'FacilityNo'与此相反。认为这些类型需要交换。 – Lloyd