Ciao.
Ho una stringa formato json. Il mio obiettivo è fare il parsing di questa stringa, con Newtonsoft, senza classe ausiliaria e supponendo di non conoscerne la struttura.
Il codice di sotto sembra funzionare ma, a dire la verità non mi convince. Chiedo se si possa semplificare.
codice:
Option Strict On
Imports Newtonsoft.Json
Imports Newtonsoft.Json.Linq
Module Module1
Sub Main()
Dim s As String = "{""nome"":""Pietro"", ""numero"":9.3, ""vettore"":[1, 2], ""testonull"":null, ""geometry"":{""x"":8.5,""y"":40.5},""attributes"":{""objectId"":1,""testo1"":null,""testo2"":""xxx"",""numero1"":null,""numero2"":44.6}}"
Prova(s)
Console.Write("Premere un tasto per continuare . . . ") : Console.ReadKey()
End Sub
Private Sub Prova(s As String)
Dim o As JObject = JObject.Parse(s)
For Each j In o.Children
Dim value As JToken = Nothing
Dim name As String = j.Path
o.TryGetValue(name, value)
Console.WriteLine("j.Path: {0}", j.Path)
Console.WriteLine("o(j.Path).ToString: {0}", o(j.Path).ToString)
Console.WriteLine("value.ToString: {0}", value.ToString)
Console.WriteLine("value.Type: {0} ({1})", value.Type.ToString, CInt(value.Type))
Console.WriteLine()
If value.Type = JTokenType.Object Then
Prova(value.ToString)
End If
Next
End Sub
End Module