Der PHP-Editor Zimo führt Sie in diesem Artikel in die Verwendung variabler Schlüssel zum Definieren von POJOs (einfache alte Java-Objekte) ein. In der Programmierung bezieht sich POJO auf ein einfaches Java-Objekt, das nicht von einem bestimmten Framework oder einer bestimmten Bibliothek abhängt. Variable Schlüssel bedeuten, dass bei der Definition eines POJO die Schlüssel (Eigenschaftsnamen) je nach Bedarf dynamisch geändert oder erweitert werden können. Diese Technologie ermöglicht uns einen flexibleren Umgang mit Objekteigenschaften und verbessert die Lesbarkeit und Wartbarkeit von Code. Als Nächstes befassen wir uns mit der Definition von POJOs mit variablen Schlüsseln und geben einige Beispiele für praktische Anwendungsszenarien.
Ich versuche, JSON in Pojo zu konvertieren, wo die Schlüssel veränderbar sind. Zum Beispiel: Berlin, Paris im folgenden Beispiel:
{ "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" } } }
Für alles innerhalb des Variablenschlüssels (Berlin, Paris), zum Beispiel:
"en-us": { "displayname": "us", "supportedlanguage": [ "us" ], "fullexample": "hello us" }, "en-ca": { "displayname": "ca", "supportedlanguage": [ "ca" ], "fullexample": "hello ca" }
Die von mir definierte Klasse lautet wie folgt:
class citydata { map <string, languagedata> locale; } class languagedata { string displayname; list<string> supportedlanguage; string fullexample; }
Um schließlich Variablenschlüssel unterzubringen, habe ich ein neues Objekt wie folgt definiert:
class city { map<string, citydata> city; }
Allerdings erhalte ich die folgende Fehlermeldung:
Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "Berlin" , not marked as ignorable (0 known properties: ])
Wie speichere ich variable Schlüssel in Pojo? Das ist etwas Wesentliches, deshalb möchte ich es über Jackson Objectmapper Readvalue abrufen.
Sie müssen die Daten als map<string、citydata>
analysieren, nicht als Objekt, das eine Karteneigenschaft enthält. Ihre Root-Ebene ist die Karte.
map<string, citydata> parsed = objectmapper.readvalue( input, new typereference<map<string, citydata>>() {});
Mit Ihrem Typ city
können Sie JSON mithilfe der folgenden Struktur analysieren:
{ "city": { "Berlin": { ... }, "Paris": { ... } } }
wo Ihr tatsächlicher JSON unter dem Schlüssel „city“ (map<string、citydata> city
) verschachtelt ist.
Das obige ist der detaillierte Inhalt vonDefinieren Sie POJOs mit veränderlichen Schlüsseln. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!