Hallo Leute Könnten Sie mir helfen? Ich habe die Klasse unterWie jersonconvert newtonsoft deserialisieren?
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; }
}
Und ich muss das JSer unten deserialize.
{
"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"
]
}
Ändern Sogar den Namen der Variablen der Fehler
nicht die aktuelle JSON-Objekt deserialisieren Kann geschieht halten (zB { "name": "Wert"}) in Typ ‚System.Collections .Generic.List`1 [Foxconn.Portal.Model.HR.Training.EmpTraining] ' , da der Typ ein JSON-Array benötigt (z. B. [1,2,3]), um korrekt zu deserialisieren.
diese Fehler zu beheben, die entweder zu einer JSON JSON Array ändern (zB [1,2,3]) oder dem deserialisierten Typ ändern, so dass es ein normaler .NET Typ (zB keinen Urtyp wie ganzer Zahl ist , kein Sammlertyp wie ein Array oder eine List), der von einem JSON-Objekt deserialisiert werden kann. JsonObjectAttribute kann auch zum Typ hinzugefügt werden, um es auf deserialize von einem JSON-Objekt zu erzwingen.
Pfad 'EmployeesTrainings', Zeile 1, Position 22.
Der Code, um die Klasse deserialisieren ruft ist:
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>();
}
die Klasse, die ich deserialisieren bin ist, dass eine darunter.
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);
}
}
}
Es gibt keine Ähnlichkeit zwischen Ihrer Klasse und dem JSON. Sie haben auch keinen Code zum Mappen angezeigt. Also, was ist deine Frage? – Eser
Welchen Teil der Fehlermeldung verstehen Sie nicht? – SLaks
Was führen Sie aus, dass der Fehler generiert? Sie zeigen nur die Deklarationen der Klasseneigenschaften an. – romellem