Wie in C#PHP json zu C# Objekt, wie JSON deserialisieren
{ "Buchhalter" Diese JSON-String deserialisieren: { "sysid": "1", "first_name": "Test" , "last_name": "Test", "product_type": "Sample" } }
Was habe ich versucht, so weit wird mit JsonConvert.DeserializeObject
var jsonObj = JsonConvert.DeserializeObject<AccountantData>(responseMessage);
das mein Modell ist
public class AccountantData
{
[JsonProperty("accountant")]
public List<UserData> Accountant { get; set; }
}
public class UserData
{
public UserData(int sysId, string firstName, string lastName, string productType)
{
SystemId = sysId;
FirstName = firstName;
LastName = lastName;
ProductType = productType;
}
[JsonProperty("sysid")]
public int SystemId { get; set; }
[JsonProperty("first_name")]
public string FirstName { get; set; }
[JsonProperty("last_name")]
public string LastName { get; set; }
[JsonProperty("product_type")]
public string ProductType { get; set; }
}
aber dies führt zu einem Fehler
Eine Ausnahme vom Typ 'Newtonsoft.Json.JsonSerializationException' aufgetreten in Newtonsoft.Json.dll aber wurde nicht im Benutzercode behandelt
Weitere Informationen: Das aktuelle JSON-Objekt kann nicht deserialisiert werden (z. B. {"name": "value"}) in Typ 'System.Collections.Generic.List`1 [MyApp.UserData]', da der Typ ein JSON-Array (z. B. [1,2,3]) erfordert, um korrekt zu deserialisieren.
Um diesen Fehler zu beheben, ändern Sie entweder den JSON in ein JSON-Array (zB [1,2,3]) oder ändern Sie den deserialisierten Typ, so dass es ein normaler .NET-Typ ist (zB kein primitiver Typ wie Integer, nicht ein Sammlertyp wie ein Array oder eine Liste), der aus einem JSON-Objekt deserialisiert werden kann. JsonObjectAttribute kann auch zum Typ hinzugefügt werden, um die Deserialisierung von einem JSON-Objekt zu erzwingen.
i verwenden json_encode nach dem rowData bekommen. Muss ich es formatieren, um Array zu werden, wenn ich json_encode? –
Ich glaube nicht, dass es etwas mit json_encode zu tun hat, wenn ich deine Frage richtig verstanden habe. Wenn Ihre JSON-Daten immer ein einzelnes UserData-Objekt haben, können Sie Ihre AccountantData-Klasse aktualisieren. Ich habe meine Antwort mit einer Erklärung aktualisiert. –