[JAVA] Développement Android, comment vérifier null dans la valeur de l'objet JSON

Décodage d'objets JSON à partir d'API dans le développement Android

Aujourd'hui, j'étais accro à l'analyse de JSON avec l'implémentation liée à l'API, je vais donc organiser mes connaissances. C'est une victoire facile pour iOS, mais c'était un peu différent pour Android. J'ai eu l'impression qu'Android est plus facile à voir car l'imbrication est moins profonde. Pour iOS, la communication API est implémentée avec Alamofire ou APIKit, donc la fermeture est écrite. Aller. Si vous êtes doué pour les méthodes de subdivision, la nidification ne sera pas trop profonde et ne sera pas moche, Jusqu'à présent, il y avait 2/3 de chances que la nidification soit plus profonde comme si elle avait été attribuée à divers sites.

Cependant, Android n'a pas de culture de fermeture, il ne semble donc pas avoir besoin d'être trop imbriqué. Cependant, comme il existe une notation lambda, il y a un flux de (argument) -> (traitement du contenu), donc si vous éclatez lambda Peut-être qu'une nidification profonde peut se produire.

Maintenant, supposons que vous ayez un fichier Json comme celui ci-dessous.

sample.json


[
  {
    "access":"15 minutes à pied de la gare Hikone sur la ligne JR Biwako",
    "address":"1 Kanegame Town, Hikone City, Préfecture de Shiga-1",
    "name":"Château de Hikone",
    "service":"Prix d'entrée: 600 yens pour les adultes, 200 yens pour les enfants; billet fixe avec musée: 1000 yens pour les adultes, 350 yens pour les enfants",
    "tel":"0749-22-2742 (Bureau de gestion du château de Hikone)",
    "url":"http://www.hikoneshi.com/",
  "pref" : null
  },
  {
    "access":"25 minutes à pied de la gare Azuchi sur la ligne JR Biwako",
    "address":"Shimotoyoura, Azuchi-cho, ville d'Omi-Hachiman, préfecture de Shiga",
    "name":"Ruines du château d'Azuchi",
    "service":"Frais d'entrée: adultes 500 yens, enfants 100 yens frais d'entrée (samedi et dimanche) 500 yens",
    "tel":"0748-46-4234",
    "url":"http://www.azuchi-shiga.com/",
  "pref" : null¥
  }
]

Ceci est emprunté au site de référence ci-dessous. Pour ceux qui veulent organiser JSON https://lab.syncer.jp/Tool/JSON-Viewer/ Veuillez faire de votre mieux avec de telles choses.

Analyse des objets JSON sur Android

Si vous souhaitez analyser sur Android, utilisez JSONArray pour créer un objet tableau JSON.

readjson.java


JSONArray jsons = new JSONArray(JsonFile);
for (int i = 0; i < jsons.length(); i++){
  JSONObject jsonRslt = jsons.getJSONObject(i);
  String access = jsonRslt.getString("access");
  String address = jsonRslt.getString("address");
  String name = jsonRslt.getString("name");
  String service = jsonRslt.getString("service");
  String tel = jsonRslt.getString("tel");
  String url = jsonRslt.getString("url");
}

Vous pouvez désormais stocker des objets dans chaque variable. Le nom de la méthode est plus consciencieux que Objective-C sur iOS. Vous ne pouvez pas faire d'erreur. ~~ Par rapport à cela, quand Objective-C ~~

À propos du contrôle nul sur Android

Je ne connaissais pas la vérification nulle de la clé de json dans le développement Android, alors je l'ai recherchée. Android a semblé planter l'application lors de l'accès à null. (Bien sûr)

La méthode semble être la suivante. Si vous avez d'autres bonnes pratiques, veuillez me le faire savoir. Je l'ai rarement utilisé dans le développement iOS, mais c'est aussi un point pour lancer une erreur avec la syntaxe try-catch.

json.java



JSONObject object = jsons //Créer des variables pour les objets json
if (jsonObject.isNull("pref")) {
    //valeur pour pref(valeur)Est nul Cette fois ça passe
} else {
    //valeur pour pref(valeur)Est non nulle
}

Quand j'essaye ça Suis-je le seul à penser que le développement iOS est plus difficile qu'autre chose? Lorsque j'ai recherché iOS, je n'ai trouvé que des pages en anglais, j'ai donc dû utiliser un code peu fiable, mais Avec Android, vous pouvez trouver rapidement les meilleures pratiques. ~~ Ingénieur Java Est-ce vraiment bien? Est-ce facile? ~~

Avec iOS, j'avais l'habitude de rechercher en m'appuyant sur Stack Over Flow. Peu importe comment vous y pensez, les ingénieurs Java ne peuvent s'empêcher de se sentir à l'aise.

Page de référence

À propos de l'acquisition de fichiers Android Json https://nextat.co.jp/staff/archives/5

Recommended Posts

Développement Android, comment vérifier null dans la valeur de l'objet JSON
Comment implémenter l'affichage sur une seule ligne de TextView dans le développement Android
Comment utiliser UsageStatsManager dans Android Studio (Comment vérifier l'heure de démarrage d'autres applications)
Comment incrémenter la valeur de Map sur une ligne en Java
Comment vérifier le journal dans le conteneur Docker
Comment changer la valeur d'une variable à un point d'arrêt dans intelliJ
Comment vérifier les commandes Rails dans le terminal
Comment vérifier la dernière version de io.spring.platform pour l'écriture dans pom.xml de Spring (STS)
[Java] Comment obtenir la valeur maximale de HashMap
[Android] Comment obtenir la langue de réglage du terminal
Comment la valeur suivante de l'objet Time est-elle correcte?
Comment vérifier l'application WEB créée dans l'environnement de développement PC sur votre smartphone
Comment utiliser la méthode getter / setter (en orientation objet)
Comment récupérer la valeur de hachage dans un tableau dans Ruby
Comment modifier la valeur de réglage de Springboot Hikari CP
Mappage à une classe avec un objet de valeur dans How to My Batis
Comment dériver le dernier jour du mois en Java
À propos des bases du développement Android
[Rails] Vérifiez le contenu de l'objet
Comment spécifier un tableau pour la valeur de retour / l'argument d'une méthode dans le fichier IDL CORBA
Comment afficher 0 sur le côté gauche de la valeur d'entrée standard
Comment afficher la valeur lorsqu'il y a un tableau dans le tableau
Comment obtenir l'identifiant de la clé PRIMAY incrémentée automatiquement dans MyBatis
Comment vérifier le contenu de la chaîne de caractères java de longueur fixe
Je veux changer la valeur de l'attribut dans Selenium of Ruby
Comment obtenir la longueur d'un fichier audio avec Java
Emplacement de la définition de la méthode Résumé de la vérification Lorsque défini dans le projet et Rails / Gem
Comment déterminer le nombre de parallèles
Comment trier une liste de SelectItems
Comment passer la valeur à un autre écran
Comment obtenir la date avec Java
Comment assembler JSON directement dans Jackson
Comment utiliser ExpandableListView dans Android Studio
Comment sortir la somme de trois nombres, à l'exclusion de la même valeur
J'ai essayé de créer une classe parent d'objet de valeur dans Ruby
Comment créer un retrait de deux espaces d'un octet dans l'implémentation JAXB du JDK
Étapes pour rendre Spring Boot capable de faire référence à la valeur dans le fichier de propriétés
Comment exécuter avec des commandes de langage de développement normales dans l'environnement de développement Docker
Comment modifier le nombre maximum et maximum de données POST dans Spark
Comment trouver le nombre total de pages lors de la pagination en Java
Comment contraindre l'action de la destination de transition lorsqu'elle n'est pas connectée
Comment obtenir la valeur du paramètre (valeur de la propriété) à partir de la base de données dans Spring Framework
Comment obtenir le chemin absolu d'un répertoire s'exécutant en Java
Comment créer votre propre annotation en Java et obtenir la valeur
[Android] Développer un service permettant aux étudiants universitaires de vérifier l'état de fonctionnement des bus circulant dans l'université.
[Java] Affiche le résultat de ffprobe -show_streams dans JSON et mappe-le à un objet dans Jackson
[Swift] Comment obtenir le nombre d'éléments dans un tableau (super basique)
Résumé de la sélection des éléments dans Selenium
Comment trouver la cause de l'erreur Ruby
graphql-ruby: Comment obtenir le nom de la requête ou de la mutation dans le contrôleur Remarque
Personnalisez la répartition du contenu de Recyclerview
Que faire lorsque la valeur devient nulle dans le second getSubmittedValue () dans JSF Validator
Comment obtenir le jour d'aujourd'hui
[Swift] Comment changer l'ordre des éléments de barre dans le contrôleur de barre d'onglets [Débutant]
Sortie de la façon d'utiliser la méthode slice
Comment stocker des objets dans PostgreSQL au format JSON avec MyBatis (Mapper XML)