Comment désérialiser cette chaîne JSON en C#PHP JSON à C# objet comment désérialiser JSON
{ "comptable": { "sysid": "1", "prenom": "Test" , "last_name": "test", "product_type": "échantillon" }}
Ce que j'ai essayé jusqu'à présent utilise JsonConvert.DeserializeObject
var jsonObj = JsonConvert.DeserializeObject<AccountantData>(responseMessage);
ceci est mon modèle
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; }
}
mais cela résulte d'une erreur
Une exception de type 'Newtonsoft.Json.JsonSerializationException' a eu lieu en Newtonsoft.Json.dll mais n'a pas été traité dans le code utilisateur
Informations supplémentaires: Impossible de désérialiser l'objet JSON en cours (par exemple {"name": "value"}) dans le type "System.Collections.Generic.List`1 [MyApp.UserData]" car le type requiert un tableau JSON (par exemple [1,2,3]) pour désérialiser correctement. Pour corriger cette erreur, changez le JSON en un tableau JSON (par exemple [1,2,3]) ou changez le type désérialisé pour qu'il soit un type .NET normal (par exemple, pas un type primitif comme un entier, pas un type de collection comme un tableau ou une liste) qui peut être désérialisé à partir d'un objet JSON. JsonObjectAttribute peut également être ajouté au type pour le forcer à désérialiser à partir d'un objet JSON.
j'utilise json_encode après avoir reçu le rowData. Ai-je besoin de le formater pour devenir tableau quand je json_encode? –
Ne pensez pas que cela a quelque chose à voir avec json_encode si j'ai bien compris votre question. Si vos données JSON vont toujours avoir un seul objet UserData, vous pouvez mettre à jour votre classe AccountantData. J'ai mis à jour ma réponse avec explication. –