J'essaie de désérialiser un objet JSON (qui est un tableau) dans une liste générique d'une classe publique appelée Comté. Voici un extrait du JSON que je reçois:Impossible de désérialiser un objet JSON, car il s'agit en réalité d'un tableau mal formaté
{
"Alachua":0,
"Baker":1,
"Bay":2,
"Bradford":3,
"Brevard":4,
"Broward":5,
"Calhoun":6,
"Charlotte":7
}
Voici la classe:
<Serializable()> _
Public Class County
Private _name As String
Private _code As Integer
Public Property Code() As Integer
Get
Return Me._code
End Get
Set(value As Integer)
Me._code = value
End Set
End Property
Public Property Name() As String
Get
Return Me._name
End Get
Set(value As String)
Me._name = value
End Set
End Property
End Class
Cependant, parce que le tableau JSON est pas formaté correctement comment j'attendre normalement, je ne peux pas l'obtenir sérialiser.
J'utilise actuellement Newtonsoft:
Dim countyResponse As List(Of County) = ParseRequestJSON(Of List(Of County))(request)
Et voici l'exception:
ne peut désérialiser l'objet JSON en cours (par exemple { "name": "valeur"}) dans le Système type ». Collections.Generic.List`1 [Models.County] '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. Chemin 'Alachua', ligne 2, position 12.
Toute aide serait appréciée, et s'il vous plaît ne soyez pas effrayé par le VB.net.
L'entrée est un objet JSON * correctement formaté. Désérialisez-le en tant qu'un (il peut être mappé à un IDictionary): puis le convertir en un tableau tel que requis par le programme. – user2864740
Vous avez raison. Il est correctement formaté. Ce n'est pas comme ça que je m'y attendais. –
Quelqu'un/quelque chose a généré l'entrée JSON en tant que telle. Un simple consommateur a juste à faire avec; même s'il peut être sérialisé différemment et/ou de manière plus appropriée. Si elle contrôle également le producteur, la sérialisation et le contrat de fil peuvent être modifiés. – user2864740