Leggi il file JSON in Scala

Leggi il file JSON in Scala
“La notazione dell'oggetto JavaScript, o JSON, è un linguaggio di codifica. La massima sostituzione di XML è un formato di interscambio di dati completamente separato. Il processo di analisi di un file JSON e ottenuto i dati essenziali da esso è trattato in questa guida. JSON è un semplice formato di scambio di dati che è semplice per i robot per analizzare e generare dati, nonché per gli umani da leggere e scrivere. È un formato di testo specifico che non è specifico per la lingua. Ci sono diverse biblioteche disponibili che possono analizzare JSON, rendendo difficile scegliere la migliore per i nostri servizi Scala. Circe, Circe Optics e Lift-Json, che abbiamo trovato la scelta più grande a causa di quanto bene gestisce JSON."

Esempio n. 1: analizzare JSON con Circe in Scala in Ubuntu 20.04

Il pacchetto Circe Scala semplifica il lavoro con JSON rendendo semplice decodificare le stringhe JSON in oggetti Scala o convertire gli oggetti Scala in JSON. Abbiamo bisogno di meno righe di codice per interagire con JSON in Scala e grazie alla generazione automatica di oggetti e decodificatori della libreria.

In questo caso, abbiamo importato il pacchetto Circe e il DeridedEcoder, che ci consente di analizzare una stringa JSON a seconda del caso "animale". La classe Case rappresenta l'oggetto "Readjson" e l'oggetto è chiamato definizione principale. Abbiamo definito la variabile "JSON_VALUE", che è inizializzata con i dati del formato JSON. La funzione di decodificatore implicita, DeridedEcoder, dalla classe Case di Circe è ciò che dobbiamo fornire in questo esempio. L'errore si verificherà se non offriamo l'implicito. Sotto il cofano, l'implementazione del parser.Decodifica chiamata classe "animale" e parametro assegnato "json_value" ad esso. Quindi, abbiamo un identificatore abbinato che restituirà uno dei due casi.

Abbiamo decodificato i dati JSON nella Scala utilizzando il pacchetto Circe Scala come segue:

Esempio n. 2: analizzare l'array JSON in Scala in Ubuntu 20.04

Un array può essere usato per avviare JSON. Quindi usiamo Circe per provare a analizzarlo.

Assomiglia al codice precedente in apparenza. Innanzitutto, abbiamo importato due pacchetti Circe. Quindi, abbiamo definito la classe del caso "frutti" e contiene un parametro, "f_name". Abbiamo stabilito il "readarray" per la definizione del metodo principale. Quindi, dichiariamo la variabile "inputjson" per rappresentare i dati JSON. Tuttavia, potresti aver notato alcune cose. È necessario creare solo il decodificatore Fruits di Case Class. Elenco [frutti] non richiede la creazione di un decodificatore. Questo è così che Circe può decodificare comodamente [A].

Un tipo generico è indicato dall'Inlist [a] di qualsiasi tipo. Circe codifica e decodifica ogni tipo separatamente. La variabile "Risultato" corrisponde al caso, che restituirà il caso giusto sul successo di analizzare JSON a Scala o il caso sinistro al fallimento.

Esempio n. 3: analizzare la stringa JSON in Scala in Ubuntu 20.04

Il pacchetto Circe-core contiene l'oggetto cursore, disponibile in tre diverse forme: cursore, hcursor e acursor. Con questo, i dati possono essere estratti o modificati all'interno della struttura JSON. Decodificheremo nell'esempio seguente utilizzando un tipo di dati algebrici. Puoi confrontarlo con enumerazione se non hai familiarità con esso.


Con l'importazione dei pacchetti Scala Circe, abbiamo iniziato l'implementazione del codice. Abbiamo definito tre casi, "calcio", "hockey" e "tennis", che sono estesi con l'oggetto "livello". Inoltre, abbiamo generato il "errore" della classe Case per la gestione delle eccezioni. Quindi, abbiamo rappresentato l'oggetto "livello". Abbiamo utilizzato la parola chiave "entrambi", che prende il livello e l'errore al suo interno. Il "entrambi" ha due figli, destra e sinistra, che vengono chiamati con la dichiarazione del caso. Il caso destro verrà eseguito con successo e il caso sinistro eseguirà il fallimento.

Abbiamo stabilito un altro oggetto come "decodificatore" per l'implementazione del codice primario. Qui, abbiamo creato una "JSON" variabile e assegnato i dati JSON, che contiene tre stringhe. La variabile implicita è definita come "valutazione di valutazione" che è chiamato oggetto "decodificatore" e passa il livello [errore, livello] ad esso. Abbiamo invocato l'oggetto del cursore "hcursor" che modificherà la struttura JSON. Sotto l'implementazione della funzione di analisi, abbiamo analizzato i dati JSON. Il JSON verrà analizzato e generato in Scala se abbinato alle dichiarazioni dei casi specificati.

Puoi vedere quel decodificatore [o [errore, livello]] sembra soddisfare tutti i requisiti. Il codice sopra, quando eseguito, produce i risultati previsti.

Esempio n. 4: analizzare JSON con Library Library in Scala in Ubuntu 20.04

Usa una combinazione delle tecniche della biblioteca di sollevamento-json. L'esempio che segue dimostra come deserializzare la stringa che si muove in molti oggetti mentre mostra ogni oggetto in quanto è deserializzato come segue:


Successivamente, abbiamo definito un "contacco dei dipendenti" di classe. La classe Case contiene alcuni attributi con i tipi di dati specificati. Quindi, abbiamo creato il "ParsejsonArray" e definito una stringa chiamata JSOSTRING che contiene alcuni dati JSON di esempio. Successivamente, abbiamo dichiarato la variabile "JSON" in cui abbiamo invocato la funzione di analisi. La funzione di analisi converte questa stringa in un oggetto JValue con il nome JSON.

Il metodo \\ viene quindi utilizzato per cercare i dati JSON per ogni elemento con il nome "Email". Questa sintassi è buona poiché corrisponde alle tecniche simili a xpath impiegate nella libreria Scala XML. Il loop per cerca ripetutamente elementi, estrae ogni elemento come oggetto "e -mail", quindi stampa il contenuto dei dati di quell'oggetto. Abbiamo passato alcuni campi all'istruzione println che verrà analizzato solo nella scala.

La seguente uscita Scala è ottenuta dopo aver eseguito il programma per analizzare i dati JSON.

Conclusione

In questo articolo sono stati presentati due approcci: uno ha usato i metodi Circe Scala e l'altro ha utilizzato un noto sollevamento-json per analizzare il testo JSON. L'utilità Circe Scala facilita l'interazione con JSON attraverso l'uso di un'API di facile utilizzo. Possiamo sempre creare un encoder o un decodificatore personalizzato, oppure possiamo utilizzare il codice di estrazione del campo direttamente per modificare il comportamento del sistema. E ci siamo resi conto che, a causa delle loro caratteristiche e della facilità di sviluppo, entrambi sono sempre favoriti durante l'analisi.