Die Community zu .NET und Classic VB.
Menü

VB.NET-Tipp 0155: JSON-String deserialisieren (System.Web.Extensions)

 von 

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

Framework-Version(en):

.NET Framework 1.0, .NET Framework 1.1, .NET Framework 2.0, .NET Framework 3.0, .NET Framework 3.5, .NET Compact Framework 1.0, .NET Compact Framework 2.0, .NET Framework 4

.NET-Version(en):

Visual Basic 2002, Visual Basic 2003, Visual Basic 2005, Visual Basic 2008, Visual Basic 2010

Download:

Download des Beispielprojektes [8,77 KB]

' Dieser Quellcode 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!

' Projektversion:   
' Option Strict:    Aus
' Option Explicit:  An
' Option Infer:     An
'
' Referenzen: 
'  - System
'  - System.Data
'  - System.Deployment
'  - System.Web.Extensions
'  - System.Xml
'  - System.Core
'  - System.Xml.Linq
'  - System.Data.DataSetExtensions
'
' Imports: 
'  - Microsoft.VisualBasic
'  - System
'  - System.Collections
'  - System.Collections.Generic
'  - System.Data
'  - System.Diagnostics
'  - System.Linq
'  - System.Xml.Linq
'

' ##############################################################################
' ################################ 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

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.