ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
1144
1144
EMPFEHLEN
-
Hallo Community,
ich versuche zur Zeit eine API zu nutzen, die mir ein in JSON codierten String zurückliefert, der wie folgt aussieht:
Code :1
{"list":[{"model.Object":{"id":1,"name":"das ist ein test","datum":{"@class":"sql-timestamp","$":"2011-01-20 14:02:52.0"},"aktiv":false}}]}
Ich komme beim deserialisieren an zwei Stellen nicht weiter, die meiner Meinung nach aber den gleichen Ursprung haben. Und zwar kann ich ja keine Property namens "model.Object" erstellen, weil Umlaute (in diesem Falle der Punkt) nicht als Property-Name erlaubt sind. Gleiches Problem stellt sich beim Value des Keys "datum". Eine Property mit dem Namen "@class" und "$" - geht nicht. Jetzt habe ich gelesen, dass man mit DataMemberAttributen solche Probleme lösen kann (http://msdn.microsoft.com/de-de/libr...attribute.aspx). Allerdings bekomme ich das nicht zum Laufen, meine Klasse für "model.Object" würde so aussehen:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14
Imports System.Runtime.Serialization <DataContract()> _ Public Class getResponseModelObject <DataMember(Name:="model.Object")> _ Public Property modelObject() As getResponseObject() Get Return m_modelObject End Get Set(ByVal value As getResponseObject()) m_modelObject= value End Set End Property Private m_modelObject As getResponseObject() End Class
Leider funktioniert das nicht. :( Bin ich mit <DataMember(Name:="model.Object")> komplett auf dem Holzweg oder mache ich einfach nur etwas falsch? Ich würde mich freuen, wenn mir jemand bei meinem Problem helfen kann! Vielen Dank schon einmal.
-
26.01.11 15:04 #2
Hi,
gibt es einen Grund warum du deine Objekte/Listen etc. nicht über den JavaScriptSerializer aus dem .NET-Framework in JSON serializierst/deserialisierst, sondern es selber implementieren möchtest?
Gruß
RudolfGTechnologien
(Gute) Grundkenntnisse: HTML, CSS
Fortgeschrittene-Kenntnisse: C++/Qt, C# (WinForms, Webservice), SQL
-
Hallo RudolfG!
Ich arbeite bereits mit JavaSriptSerializer:
Code :1 2 3 4 5 6 7 8 9 10
Dim serializer As New JavaScriptSerializer() serializer.MaxJsonLength = data.Length Dim dataObject As getResponseList = serializer.Deserialize(Of getResponseList)(data) Dim objects As getResponseObject() = dataObject.list(0).modelObject Dim list As New List(Of getResponseObject) For Each obj As getResponseObject In objects list.Add(obj) Next Me.DataGridView1.DataSource = list
-
Ich habe mich noch nie mit dem JavaScriptSerializer beschäftigt. Wenn mein Beitrag daher unqualifiziert ist, dann bitte einfach ignorieren

Aber MSDN sagt mir:
Hast du dir den JavaScriptConverter mal angeschaut?Um Typen zu serialisieren und zu deserialisieren, für die keine systemeigene Unterstützung durch JavaScriptSerializer besteht, implementieren Sie mithilfe der JavaScriptConverter-Klasse benutzerdefinierte Konverter. Registrieren Sie die Konverter dann mit der RegisterConverters-Methode.hihi = -h²
-
Nein, die kannte ich noch nicht. Schaue mir mal an, ob das für meine Zwecke ausreicht. Vielen Dank schon mal an der Stelle!
-
26.03.11 23:22 #6
- Registriert seit
- Aug 2006
- Beiträge
- 204
Je nach der verwendeten Framework Version kannst du auch den JsonSerializer verwenden.ich glaube ab 3.5 ist er mit dabei. An Sonaten Suche mal nach .Net Json, da wirst du ein eine ganze Menge zu finden.
Ähnliche Themen
-
json for..in
Von ano1486 im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 28.08.10, 16:28 -
[jQuery] + JSON +PHP
Von mgraf im Forum Javascript & AjaxAntworten: 6Letzter Beitrag: 18.05.10, 11:01 -
json aktivieren!?
Von Marky-1 im Forum Hosting & WebserverAntworten: 2Letzter Beitrag: 17.04.09, 20:16 -
JSON Dekodierung
Von serializable im Forum PHPAntworten: 2Letzter Beitrag: 26.07.08, 16:00 -
Deserialization von string bzw xml daten
Von Trivalik im Forum .NET ArchivAntworten: 2Letzter Beitrag: 26.01.05, 12:41





Zitieren
Login





