Je suis nouveau dans la manipulation des données au format JSON récupérées via une API Web. J'utilise Newtonsoft.Json.JsonConvert pour désérialiser et affecter à datatable.Erreur de formatage du format JSON
Ce sont les données JSON que j'essaie d'obtenir dans une datatable.
[{
"classDesc":"SIDEWALK,DRIVEWAY,CURB",
"classCode":"EH",
"legend":"017",
"isActive":"Y",
"atrSpaCityDistrictId":"00D17209F8F25F6D4A00011302",
"atrSpaCitieDistrict":{
"cityDistrict":"",
"isActive":"1",
"atrSpaClassLegends":null,
"id":"00D17209F8F25F6D4A00011302"
},
"id":"00D1748B8DA0AB0A7400011202"
}]
J'ai créé les classes ci-dessous
Public Class RootObject
Public Property classDesc As String
Public Property classCode As String
Public Property id As Integer
Public Property legend As Integer
Public Property isActive As String
Public Property atrSpaCityDistrictId As Integer
Public Property atrSpaCitieDistrict As List(Of Result) End Class
Public Class Result
Public Property cityDistrict As String
Public Property isActive As Integer
Public Property atrSpaClassLegends As List(Of Legend)
Public Property id As Integer
End Class
Public Class Legend
End Class
Ci-dessous mon code VB.Net:
Dim table As DataTable Dim client As New HttpClient() client.BaseAddress = New Uri("http://localhost:5000/") client.DefaultRequestHeaders.Accept.Add(New MediaTypeWithQualityHeaderValue("application/json"))
Dim response As HttpResponseMessage = client.GetAsync("api/spaclasslegend").Result
If response.IsSuccessStatusCode Then
Dim json As String = response.Content.ReadAsStringAsync().Result table = JsonConvert.DeserializeObject(Of DataTable)(json)
End If
erreur ci-dessous Obtenir
« ne peut pas désérialiser le JSON en cours tableau (par exemple [1,2,3]) dans le type 'Alco.APTIS.Services.RootObject' car le type requiert un objet JSON (par ex. { « Name »: « valeur »}.) Désérialiser correctement »
J'ai essayé différentes façons de résoudre ce en utilisant stackoverflow.com et enfin l'affichage ici pour aider
Vérifiez le contenu de votre variable de chaîne 'json'. Le message d'erreur indique que vous essayez de désérialiser un objet à partir d'un tableau JSON. (Par exemple, votre service Web peut retourner un tableau contenant un objet.) – pmcoltrane
Merci beaucoup pour votre réponse rapide. J'ai posté ma chaîne JSON. Pourriez-vous s'il-vous-plaît vérifier? – Naren
En fait, je n'obtiens pas l'erreur que vous listez lorsque je lance une version minimale du code. Je reçois une erreur de jeton inattendue quand il essaie d'analyser 'atrSpaCitieDistrict'. Le convertisseur 'DataTable' de JSON.NET prend-il en charge des objets complexes? – pmcoltrane