Maison >Java >javaDidacticiel >Comment extraire les valeurs \'id\' et \'loc\' d'un JSONArray imbriqué en Java ?

Comment extraire les valeurs \'id\' et \'loc\' d'un JSONArray imbriqué en Java ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-27 05:13:11276parcourir

How to Extract

Accès aux valeurs "id" et "loc" à partir d'un JSONArray imbriqué en Java

Lors de l'analyse des données JSON en Java, il est courant de rencontrer des structures imbriquées, telles que JSONArrays dans JSONObjects. Accéder à des valeurs spécifiques au sein de ces structures imbriquées peut être un peu délicat pour les débutants.

Problème :

Considérez les données JSON suivantes :

{
  "locations": {
    "record": [
      {
        "id": 8817,
        "loc": "NEW YORK CITY"
      },
      {
        "id": 2873,
        "loc": "UNITED STATES"
      },
      {
        "id": 1501,
        "loc": "NEW YORK STATE"
      }
    ]
  }
}

Le but est de parcourir le JSONArray "record" et d'accéder aux valeurs "id" et "loc" pour chacun. record.

Solution :

Pour accéder aux membres d'un élément dans un JSONArray, vous pouvez utiliser la méthode getJSONObject(int). Le code suivant montre comment y parvenir :

JSONObject req = new JSONObject(join(loadStrings(data.json),""));
JSONObject locs = req.getJSONObject("locations");
JSONArray recs = locs.getJSONArray("record");

for (int i = 0; i < recs.length(); ++i) {
    JSONObject rec = recs.getJSONObject(i);
    int id = rec.getInt("id");
    String loc = rec.getString("loc");
    // ...
}

Dans la boucle for :

  • recs.length() fournit le nombre d'éléments dans le "record" JSONArray.
  • recs.getJSONObject(i) renvoie un JSONObject représentant le i-ème record.
  • rec.getInt("id") récupère la valeur entière de la clé "id".
  • rec.getString("loc") récupère la valeur de chaîne du "loc" clé.

Ces valeurs récupérées peuvent ensuite être utilisées pour des traitements ou des opérations ultérieurs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn