Die Community zu .NET und Classic VB.
Menü

Tipp-Upload: VB.NET 0416: JSON-String deserialisieren

 von 

Über den Tipp  

Dieser Tippvorschlag wird übernommen.

Der Vorschlag ist in den folgenden Kategorien zu finden:

  • Algorithmen
  • Internet und Netzwerke
  • Sprachmerkmale

Dem Tippvorschlag wurden folgende Schlüsselwörter zugeordnet:
json,.net4,deserialisierung

Der Vorschlag wurde erstellt am: 26.10.2011 22:07.
Die letzte Aktualisierung erfolgte am 26.10.2011 22:07.

Zurück zur Übersicht

Beschreibung  

Dieses Programmbeispiel verwendet die Microsoft Bibliothek System.Web.Extensions
um einen String in JSON-Notation in ein Dictionary-Objekt einzulesen.
Es handelt sich um eine Konsolenanwendung, die gg. das .NET Framework 4
kompiliert werden sollte.

Schwierigkeitsgrad

Schwierigkeitsgrad 2

Verwendete API-Aufrufe:

Download:

Download des Beispielprojektes [8,81 KB]

' Dieser Source stammt von http://www.activevb.de
' und kann frei verwendet werden. Für eventuelle Schäden
' wird nicht gehaftet.

' Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
' Ansonsten viel Spaß und Erfolg mit diesem Source!
'
' Beachten Sie, das vom Designer generierter Code hier ausgeblendet wird.
' In den Zip-Dateien ist er jedoch zu finden.

' ------------ Anfang Projektdatei JSON001.vbproj ------------
' ----------------- Anfang Datei Module1.vb  -----------------
Module Module1

    Sub Main()

        ' Projektverweis auf C:\Program Files (x86)\Reference
        ' Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Web.Extensions.dll
        Dim JSSerializer As New System.Web.Script.Serialization.JavaScriptSerializer()

        ' JSON-Beispielstrings als Ressource hinterlegt
        Dim d As Dictionary(Of String, Object) = JSSerializer.Deserialize(Of Dictionary(Of _
            String, Object))(My.Resources.json003)

        RecourseDict(d, 0)

        Console.WriteLine("")
        Console.Write("Press Enter to Exit...")
        Console.ReadLine()

    End Sub

    Sub RecourseDict(ByVal d As Dictionary(Of String, Object), ByVal depth As Int32)

        For Each key As String In d.Keys

            ' Console.WriteLine(TypeName(d.Item(key)))
            ' Console.WriteLine(key & ": " & d.Item(key))

            Dim tabs As New String(ChrW(9), depth)

            Console.Write(tabs)
            Console.Write(key & ": ")

            If TypeOf (d.Item(key)) Is Dictionary(Of String, Object) Then
                Console.WriteLine("{")
                RecourseDict(d.Item(key), depth + 1)
                Console.Write(tabs)
                Console.WriteLine("}")

            Else

                Console.WriteLine(d.Item(key))
            End If

        Next

    End Sub

End Module

' ------------------ Ende Datei Module1.vb  ------------------
' ------------- Ende Projektdatei JSON001.vbproj -------------

	

Diskussion  

Diese Funktion ermöglicht es, Fragen, die die Veröffentlichung des Tipps betreffen, zu klären, oder Anregungen und Verbesserungsvorschläge einzubringen. Nach der Veröffentlichung des Tipps werden diese Beiträge nicht weiter verlinkt. Allgemeine Fragen zum Inhalt sollten daher hier nicht geklärt werden.
Folgende Diskussionen existieren bereits

und [TU 417] - Robert Closheim 09.11.2011 17:51

Um eine Diskussion eröffnen zu können, müssen sie angemeldet sein.