你好,你能幫我嗎?我有以下類別如何反序列化jsonconvert newtonsoft?
public class EmpTraining
{
public int CodColig { get; set; }
public string EmpID { get; set; }
public string Employee { get; set; }
public string CostCenter { get; set; }
public string Department { get; set; }
public string WorkstationID { get; set; }
public string Workstation { get; set; }
public string Training { get; set; }
public string CreateDt { get; set; }
public string DueDt { get; set; }
}
而且我需要反序列化下面的json。
{
"EmployeesTrainings": [
{
"CODCOLIGADA": 1,
"CHAPA": "sample string 2",
"NOME": "sample string 3",
"CCUSTO": "sample string 4",
"Departamento": "sample string 5",
"CODPOSTO": "sample string 6",
"POSTO": "sample string 7",
"TREINAMENTO": "sample string 8",
"REALIZADO_EM": "2016-04-19T14:17:19.7291778-03:00",
"VALIDADE": "2016-04-19T14:17:19.7291778-03:00"
},
{
"CODCOLIGADA": 1,
"CHAPA": "sample string 2",
"NOME": "sample string 3",
"CCUSTO": "sample string 4",
"Departamento": "sample string 5",
"CODPOSTO": "sample string 6",
"POSTO": "sample string 7",
"TREINAMENTO": "sample string 8",
"REALIZADO_EM": "2016-04-19T14:17:19.7291778-03:00",
"VALIDADE": "2016-04-19T14:17:19.7291778-03:00"
}
],
"HasErrors": true,
"Errors": [
"sample string 1",
"sample string 2"
]
}
即使改變的變量發生
不能反序列化JSON當前對象(例如{「名」:「值」})這個名字的錯誤保持 進式 「System.Collections中.Generic.List`1 [Foxconn.Portal.Model.HR.Training.EmpTraining]」 因爲類型需要JSON陣列(例如[1,2,3]),以正確地反序列化 。
爲了解決這個錯誤或者改變JSON到JSON陣列(例如 [1,2,3]),或改變它的反序列化類型,以便它是一個正常的.NET 類型(例如不是原始類型像整數,而不是類似數組或列表的集合類型 ),它們可以從JSON對象反序列化。 也可以將JsonObjectAttribute添加到該類型中,以強制它從一個JSON對象反序列化爲 。
路徑「EmployeesTrainings」,第1行,22位上
正在調用類反序列化代碼是:
public static List<EmpTraining> List(int codColig, string empID, string trainingID, string workstationID, string status, int? days)
{
List<EmpTraining> empList = Api.PostWebApiStr<List<EmpTraining>>(JSON, webApi, Token, timeOut);
if (empList.Count > 0)
return empList;
return new List<EmpTraining>();
}
,我使用反序列化類是一個在下面。
public static T PostWebApiStr<T>(string data, Uri webApiUrl, Token token, int timeout)
{
using (var client = new ExtendedWebClient(webApiUrl, timeout))
{
try
{
client.Headers[HttpRequestHeader.ContentType] = "application/json";
if (token != null)
{
client.Headers[HttpRequestHeader.Authorization] = string.Format("{0} {1}", token.TokenType, token.AccessToken);
}
var response = client.UploadString(webApiUrl, data);
return JsonConvert.DeserializeObject<T>(response);
}
catch (WebException ex)
{
throw new Exception(ex.Message);
}
}
}
你的類和json之間沒有相似之處。你還沒有顯示任何代碼來映射這些。那麼你的問題是什麼? – Eser
錯誤信息的哪部分你不明白? – SLaks
你運行什麼產生錯誤?你只顯示類屬性聲明。 – romellem