Définir des POJO avec des clés mutables
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" } } }
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" }
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; }
Enfin pour accueillir les variableskeys, j'ai défini un nouvel objet comme suit :
class city { map<string, citydata> city; }
Cependant, j'obtiens l'erreur suivante :
Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "Berlin" , not marked as ignorable (0 known properties: ])
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>>() {});
En utilisant votre type city
, vous pouvez analyser json en utilisant la structure suivante :
{ "city": { "Berlin": { ... }, "Paris": { ... } } }
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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