Table des matières
Contenu de la question
Solution de contournement
Maison Java Définir des POJO avec des clés mutables

Définir des POJO avec des clés mutables

Feb 09, 2024 am 08:42 AM

L'éditeur PHP Zimo vous expliquera comment utiliser les clés variables pour définir des POJO (anciens objets Java) dans cet article. En programmation, POJO fait référence à un simple objet Java qui ne dépend d'aucun framework ou bibliothèque spécifique. Les clés variables signifient que lors de la définition d'un POJO, les clés (noms de propriété) peuvent être modifiées ou étendues dynamiquement selon les besoins. Cette technologie nous permet d'exploiter les propriétés des objets de manière plus flexible et améliore la lisibilité et la maintenabilité du code. Nous verrons ensuite comment définir des POJO avec des clés variables et donnerons quelques exemples de scénarios d'application pratiques.

Contenu de la question

J'essaie de convertir json en pojo où les clés sont mutables. Par exemple : Berlin, Paris dans l'exemple suivant :

{
  "berlin": {
    "en-us": {
      "displayname": "us",
      "supportedlanguage": [
        "us"
      ],
      "fullexample": "hello us"
    },
    "en-ca": {
      "displayname": "ca",
      "supportedlanguage": [
        "ca"
      ],
      "fullexample": "hello ca"
    }
  },
  "paris": {
    "en-us": {
      "displayname": "us",
      "supportedlanguage": [
        "us"
      ],
      "fullexample": "hello us"
    },
    "en-ca": {
      "displayname": "ca",
      "supportedlanguage": [
        "ca"
      ],
      "fullexample": "hello ca"
    }
  }
}
Copier après la connexion

Pour tout ce qui se trouve dans la clé variable (Berlin, Paris), par exemple :

"en-us": {
      "displayname": "us",
      "supportedlanguage": [
        "us"
      ],
      "fullexample": "hello us"
    },
    "en-ca": {
      "displayname": "ca",
      "supportedlanguage": [
        "ca"
      ],
      "fullexample": "hello ca"
    }
Copier après la connexion

La classe que j'ai définie est la suivante :

class citydata {

map <string, languagedata> locale;
}

class languagedata {
string displayname;
list<string> supportedlanguage;
string fullexample;
}
Copier après la connexion

Enfin pour accueillir les variableskeys, j'ai défini un nouvel objet comme suit :

class city {

map<string, citydata> city;

}
Copier après la connexion

Cependant, j'obtiens l'erreur suivante :

Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "Berlin" , not marked as ignorable (0 known properties: ])
Copier après la connexion

Comment stocker les clés variables dans pojo ? C'est quelque chose d'essentiel, donc je souhaite le récupérer via la valeur de lecture du Jackson ObjectMapper.

Solution de contournement

Vous devez analyser les données comme map<string、citydata>, et non comme un objet contenant une propriété de carte. Votre niveau racine est la carte.

map<string, citydata> parsed = objectmapper.readvalue(
  input,
  new typereference<map<string, citydata>>() {});
Copier après la connexion

En utilisant votre type city, vous pouvez analyser json en utilisant la structure suivante :

{
  "city": {
    "Berlin": { ... },
    "Paris": { ... }
  }
}
Copier après la connexion

où votre json actuel est imbriqué sous la clé "city" (map<string、citydata> city).

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)