3.906 messaggi dal 28 gennaio 2003
Salute.
Ma è proprio vero che il framework Microsoft non contenga classi per il parser di file json?

Pietro
11.655 messaggi dal 09 febbraio 2002
Contributi
Ciao Pietro,
sì, il framework contiene il necessario per serializzare e deserializzare il JSON. Puoi usare il DataContractJsonSerializer, che era anche usato per produrre JSON da un servizio WCF e dai Page Methods di ASP.NET WebForms.

https://docs.microsoft.com/en-us/dotnet/framework/wcf/samples/json-serialization

Comunque, perché non usare Newtonsoft.Json? Il suo autore, James Newton-King, lavora per Microsoft. Qui puoi vedere i suoi contributi recenti ad ASP.NET Core e a .NET in generale.
https://github.com/JamesNK

ciao,
Moreno

PS. se usi ASP.NET Core, a partire dalla versione 3.0 Microsoft ha un pacchetto ufficiale per serializzare in JSON che ha prestazioni migliori di Newtonsoft.Json.
https://www.aspitalia.com/articoli/asp.net-core3/anteprima-aspnet-core-3-p-5.aspx#title_2

ciao,
Moreno

Enjoy learning and just keep making
3.906 messaggi dal 28 gennaio 2003
Scusa ma ho visto la tua risposta solo oggi.
In effetti uso Newtonsoft.Json. Per il resto uso ancora vs2010!

Mi sembra che sia molto più facile fare il parsing di un xml invece di un json.

Ciao.

Pietro
11.655 messaggi dal 09 febbraio 2002
Contributi
Ciao,
più o meno è uguale. Che codice usi per deserializzare il json?

ciao,
Moreno

Enjoy learning and just keep making
3.906 messaggi dal 28 gennaio 2003
Faccio così:
Apro vs2017 in un virtuale.
Incollo il json e vs mi crea le classi; poi le ricopio nel codice con vs2010.

data la stringa json, json_data,
Dim r As Rootobject = JsonConvert.DeserializeObject(Of Rootobject)(json_data), New Rootobject()

Se va in errore, modifico la classe creata con vs2017 come l'errore stesso suggerisce.
Nel mio ultimo caso, sostituisco Array con List.

Quello che non capisco è la necessità di deserializzare in una classe. Pensavo invece a qualcosa di simile alla gestione dei file xml dove, con XmlDocument e xpath, li manovro più facilmente.

Ciao.

Pietro
11.655 messaggi dal 09 febbraio 2002
Contributi
Ciao Pietro,


Quello che non capisco è la necessità di deserializzare in una classe.

Deserializzarlo in una classe non è necessario. Newtonsoft.Json ha un apposito metodo JObject.Parse che ti ricrea una gerarchia di elementi, che potrai anche interrogare in maniera simile a xpath.

Ecco la pagina della documentazione che spiega come fare:
https://www.newtonsoft.com/json/help/html/QueryJsonSelectToken.htm

ciao,
Moreno
Modificato da BrightSoul il 05 giugno 2019 09:36 -

Enjoy learning and just keep making
3.906 messaggi dal 28 gennaio 2003
Caspita! Guardo subito.

Ti ringrazio.

ciao.

Pietro

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.