Newtonsoft JSON Désérialiser Question [Erreur lors de la conversion de la valeur de type]
En utilisant C# Newtownsoft JSON bibliothèques... j'ai rencontrer ce genre de problème.
À la mise en scène...
J'ai JSON à partir d'un Service Web RESTful:
[
{
"CorporateArea": "Brampton",
"ServiceAddress": "321 Heart Lake Road",
"VendorName": "Enbridge Gas Distribution Inc",
"MeterNumber": "502105",
"RateClass": "NG-R6",
"Department": "22603",
"Account": "12008",
"VendorID": "0000001195",
"MeterLevelID": 2882,
"SiteAddressID": 468,
"MappingLocation": "Beckett Sproule",
"ElectricalBilling": "",
"EnergyLine": "",
"CorporateGroup": "Public Works"
}
]
J'ai aussi ces classes C#:
public class AccountInfo
{
[JsonProperty("Account")]
public string Account { get; set; }
[JsonProperty("CorporateArea")]
public string CorporateArea { get; set; }
[JsonProperty("CorporateGroup")]
public string CorporateGroup { get; set; }
[JsonProperty("Department")]
public string Department { get; set; }
[JsonProperty("ElectricalBilling")]
public string ElectricalBilling { get; set; }
[JsonProperty("EnergyLine")]
public string EnergyLine { get; set; }
[JsonProperty("MappingLocation")]
public string MappingLocation { get; set; }
[JsonProperty("MeterLevelID")]
public string MeterLevelID { get; set; }
[JsonProperty("MeterNumber")]
public string MeterNumber { get; set; }
[JsonProperty("RateClass")]
public string RateClass { get; set; }
[JsonProperty("ServiceAddress")]
public string ServiceAddress { get; set; }
[JsonProperty("SiteAddressID")]
public string SiteAddressID { get; set; }
[JsonProperty("VendorID")]
public string VendorID { get; set; }
[JsonProperty("VendorName")]
public string VendorName { get; set; }
}
public class JSONArray {
public IList<AccountInfo> AccountsInfo { get; set; }
}
De ces, j'appelle cela Newtownsoft Méthode:
JSONArray Accounts = JsonConvert.DeserializeObject<JSONArray> (responseBody,
new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Ignore
});
Mais chaque fois que je le fais, j'ai l'exception Newtonsoft.Json.JsonSerializationException
avec le message d'erreur:
Erreur lors de la conversion de la valeur "[{"CorporateArea":"la ville de Brampton","ServiceAddress":"321 Cœur de la Route du Lac","VendorName":"Enbridge Gas Distribution Inc","MeterNumber":"502105","RateClass":"NG-R6","Department":"22603","Account":"12008","VendorID":"0000001195","MeterLevelID":2882,"SiteAddressID":468,"MappingLocation":"Beckett Sproule,"ElectricalBilling":"","EnergyLine":"","CorporateGroup":"Travaux Publics"}]" de type " TestWebService_Consume.JSONArray'. Chemin d'accès ", line 1, poste 421.
J'ai essayé de jouer avec la chaîne JSON il n'est donc pas un tableau, et le moulage en une simple AccountsInfo objet, il retourne la même erreur.
Je dois être en train de faire quelque chose de mal, mais il a été un certain temps puisque j'ai travaillé avec le Newtonsoft JSON bibliothèques, donc je suis à une perte de ce que pourrait être question ici.
- Double Possible de la Désérialisation d'Objet JSON Tableau avec Json.net
Vous devez vous connecter pour publier un commentaire.
La Désérialisation de sortie pour le JSON est en essayant avec
est
Mais si vous essayez comme ceci
ou
vous donnera la résultante json en Objet.
Votre JSOn n'est pas un objet, mais un tableau d'objets, de sorte que vous n'avez pas besoin d'une classe pour envelopper le tableau, vous devez désérialiser directement à la matrice:
Si vous voulez vraiment avoir
JSONArray
objet, vous pouvez le créer et de sérialiser à la propriété. Juste une remarque: votreAccountInfo
propriété est privée, vous devez modifier publique pour désérialiser à elle.