Exemple n ° 1: analyser JSON avec circe dans Scala dans Ubuntu 20.04
Le package CIRCE Scala facilite le travail avec JSON en facilitant la décodeur JSON dans des objets Scala ou en convertissant des objets Scala en JSON. Nous avons besoin de moins de lignes de code pour interagir avec JSON à Scala et grâce à la génération automatique des encodeurs et décodeurs d'objets de la bibliothèque.
Dans ce cas, nous avons importé le package CIRCE et le cocodeur Derive. La classe de cas représente l'objet «Readjson» et l'objet est appelé la définition principale. Nous avons défini la variable «JSON_VALUE», qui est initialisée avec les données de format JSON. La fonction de décodeur implicite, DeriveCoder, de la classe de cas de CIRCE est ce que nous devons fournir dans cet exemple. L'erreur se produira si nous n'offrons pas l'implicite. Sous le capot, la mise en œuvre de l'analyseur.décoder appelé la classe «animal» et le paramètre attribué «json_value». Ensuite, nous avons un identifiant apparié qui retournera l'un des deux cas.
Nous avons décodé les données JSON dans le Scala en utilisant le package Circe Scala comme suit:
Exemple n ° 2: Panage du tableau JSON à Scala dans Ubuntu 20.04
Un tableau peut être utilisé pour démarrer JSON. Alors utilisons Circe pour essayer de analyser cela.
Il ressemble au code précédent en apparence. Tout d'abord, nous avons importé deux packages CIRCE. Ensuite, nous avons défini la classe de cas «fruits» et il contient un paramètre, «f_name». Nous avons établi le «ReadArray» pour la définition de la méthode principale. Ensuite, nous déclarons la variable «inputjson» pour représenter les données JSON. Cependant, vous avez peut-être remarqué quelques choses. Seuls le décodeur de fruits de la classe de cas doit être créé. Liste [Fruits] ne nécessite pas un décodeur pour être créé. C'est ainsi que CIRCE peut décoder commodément la liste [A].
Un type générique est indiqué par l'inscription [a] de toute nature. CIRCE codera et décode chaque type séparément. La variable «Résultat» correspond au cas, qui renverra soit le bon cas sur le succès de l'analyse de JSON à Scala ou le cas de gauche en échec.
Exemple n ° 3: analyse JSON String dans Scala dans Ubuntu 20.04
Le package Circe-core contient l'objet de curseur, disponible sous trois formes différentes: le curseur, le hcursor et l'acurseur. Avec cela, les données peuvent être extraites ou modifiées dans la structure JSON. Nous allons décoder dans l'exemple suivant en utilisant un type de données algébrique. Vous pouvez le comparer à l'énumération si vous ne connaissez pas.
Avec l'importation des packages Scala Circe, nous avons commencé l'implémentation du code. Nous avons défini trois cours de cas, «football», «hockey» et «tennis», qui sont étendus avec l'objet «niveau». De plus, nous avons généré «l'erreur» de la classe de cas pour la gestion des exceptions. Ensuite, nous avons représenté l'objet «niveau». Nous avons utilisé le mot-clé «l'un ou l'autre», qui prend le niveau et l'erreur à l'intérieur. Le «l'un ou l'autre» a deux enfants, à droite et à gauche, qui sont appelés avec la déclaration de cas. Le bon cas sera exécuté sur le succès et le cas de gauche s'exécutera en échec.
Nous avons établi un autre objet en tant que «décodeur» pour l'implémentation du code principal. Ici, nous avons créé une variable «JSON» et attribué les données JSON, qui contient trois chaînes. La variable implicite est définie comme «RatingDecoder» qui est appelée l'objet «Decoder» et passe le [Erreur, niveau]. Nous avons invoqué l'objet du curseur «hcursor» qui modifiera la structure JSON. Sous la mise en œuvre de la fonction d'analyse, nous avons analysé les données JSON. Le JSON sera analysé et généré dans Scala lorsqu'il est apparié avec les instructions de cas spécifiées.
Vous pouvez voir que le décodeur [soit [Erreur, niveau]] semble satisfaire à toutes les exigences. Le code ci-dessus, lorsqu'il est exécuté, donne les résultats attendus.
Exemple n ° 4: analyse JSON avec Library Lift-Json à Scala dans Ubuntu 20.04
Utilisez une combinaison des techniques de la bibliothèque de lifting-json. L'exemple qui suit montre comment désérialiser la chaîne JSONSTRING en de nombreux objets tout en affichant chaque objet car il est désérialisé comme suit:
Après cela, nous avons défini une classe «EmployeyCount». La classe de cas contient certains attributs avec les types de données spécifiés. Ensuite, nous avons créé le «parsejsonArray» et avons défini une chaîne appelée JSONSTRING qui contient des données JSON à un exemple. Après cela, nous avons déclaré la variable «JSON» où nous avons invoqué la fonction d'analyse. La fonction d'analyse convertit cette chaîne en un objet Jvalue avec le nom JSON.
La méthode \\ est ensuite utilisée pour rechercher les données JSON pour chaque élément avec le nom «e-mail». Cette syntaxe est bonne car elle correspond aux techniques de type XPATH utilisées dans la bibliothèque Scala XML. La boucle FOR recherche à plusieurs reprises des éléments, extrait chaque élément comme un objet «e-mail», puis imprime le contenu des données de cet objet. Nous avons passé certains champs à la déclaration println qui ne sera analysée que dans la scala.
La sortie Scala suivante est obtenue après avoir exécuté le programme pour analyser les données JSON.
Conclusion
Deux approches ont été présentées dans cet article: l'une a utilisé des méthodes Circe Scala, et l'autre a utilisé un lift-json bien connu pour analyser le texte JSON. L'utilitaire CIRCE Scala facilite l'interaction avec JSON grâce à l'utilisation d'une API facile à utiliser. Nous pouvons toujours créer un encodeur ou un décodeur personnalisé, ou nous pouvons utiliser le code d'extraction de champ directement pour modifier le comportement du système. Et nous avons réalisé qu'en raison de leurs caractéristiques et de leurs facilité de développement, les deux sont toujours favorisés lors de l'analyse.