我有一个Web API,在调用时会返回JSON。问题是它返回具有多个对象的JSON数组。我需要为我的班级解析它来创建一个网格。
您可以查看my api here。
我在解析时遇到错误
块引用 “Newtonsoft.Json.JsonSerializationException:'无法将当前JSON数组(例如[1,2,3])反序列化为类型'OpsArc.Models.OnBoardingDetailsWithResourceDTO',因为该类型需要一个JSON对象(例如{”name“:”value“ })正确地反序列化。
要修复此错误,请将JSON更改为JSON对象(例如{“name”:“value”})或将反序列化类型更改为数组或实现集合接口的类型(例如ICollection,IList)可以从JSON数组反序列化的列表。 JsonArrayAttribute也可以添加到类型中以强制它从JSON数组反序列化。 路径'',第1行,第1位。'“
答案 0 :(得分:0)
您可以使用this website (JSON2CSharp)将您的json输出转换为各自的类。您将获得以下输出
public class ThisResource
{
public string id { get; set; }
public object empRec { get; set; }
public int createdBy { get; set; }
public object payrollId { get; set; }
public int resourceTypeID { get; set; }
public string resourceTypeValue { get; set; }
public string resourceTypeStoredValue { get; set; }
public string ssn { get; set; }
public string lastName { get; set; }
public string middleName { get; set; }
public string firstName { get; set; }
public string localEmployeeId { get; set; }
public int resourceStatusId { get; set; }
public object resourceStatusValue { get; set; }
public object resourceStatusStoredValue { get; set; }
public object vendorId { get; set; }
public object alertRec { get; set; }
public object alertNote { get; set; }
public object divRec { get; set; }
public object repRec { get; set; }
public object hold { get; set; }
public object holdNote { get; set; }
public object cdid { get; set; }
public object shortNotes { get; set; }
public object doNotPlace { get; set; }
public object modifiedBy { get; set; }
public object lastModifiedOn { get; set; }
public DateTime ts { get; set; }
}
public class ThisBoardingDetails
{
public string id { get; set; }
public string resourceOnboardingID { get; set; }
public int desiredResourceTypeID { get; set; }
public int offerExpires { get; set; }
public object desiredResourceTypeValue { get; set; }
public object desiredResourceTypeStoredValue { get; set; }
public string jobOrderID { get; set; }
public string backgroundCheckID { get; set; }
public int emailID { get; set; }
public string requestDate { get; set; }
public object onboardingRequest { get; set; }
public int onboardingStatusCode { get; set; }
public string resourceID { get; set; }
}
public class RootObject
{
public ThisResource thisResource { get; set; }
public ThisBoardingDetails thisBoardingDetails { get; set; }
}
你需要解决一些问题,但这是一个足够好的资源,可以帮助你开始。