Meine Klasse:Wie verhindert man, dass Gson das erste Zeichen eines Feldes (Unterstrich) serialisiert/deserialisiert?
class ExampleBean {
private String _firstField;
private String _secondField;
// respective getters and setters
}
I wird wie folgt angezeigt werden soll:
{
"FirstField":"value",
"SecondField":"value"
}
und nicht wie diese
{
"_FirstField":"value",
"_SecondField":"value"
}
initialisieren ich den Parser wie folgt:
GsonBuilder builder = new GsonBuilder();
builder.setDateFormat(DateFormat.LONG);
builder.setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE);
builder.setPrettyPrinting();
set_defaultParser(builder.create());
Ich konnte die API und in den documentation von „FieldNamePolicy“ sehen, aber ich bin überrascht, dass nicht die Möglichkeit geben, überspringen „_“ Ich weiß auch ich die Anmerkung verwenden kann ...
@ SerializedName (" custom_naming ")
... aber ich möchte dies nicht für alllllll meine Felder schreiben müssen ...
Es ist sehr nützlich für mich, zwischen lokalen Variablen und Feldern einer Klasse zu unterscheiden. :(Jede Idee
EDIT:. würde es viele offensichtliche Lösungen, (Vererbung, Gson Überschreiben Methoden, regelmäßige expresions) Meine Frage ist, mehr auf, ob es eine native Lösung von Gson oder eine weniger aufdringliche fix ?
Vielleicht könnten wir als neuen FieldNamePolicy vorschlagen?
Die Antwort erzeugt ist ... Konventionen richtige Java Namensgebung folgen und nicht Verwenden Sie Unterstriche. Und obwohl die JSON-Namenskonventionen dies zulassen, würden Sie selten jemanden finden, der PascalCase in JSON verwendet (was Ihre vorgeschlagene Ausgabe ist). Ihre andere Option verwendet '@ SerializedName' für jeden nicht übereinstimmenden Feldnamen. –
Sie haben mir nichts gesagt, was ich nicht weiß. Ich und mein Team von Fachleuten, wir sind frei, die Sprachkonventionen zu wählen, denen wir mehr zustimmen. Vor allem, wenn wir verschiedene Technologien und Sprachen gleichzeitig integrieren. Wie auch immer, danke für deine Zeit. – enagra
Dann sollten Sie und Ihr "Team von Fachleuten" bereit sein, sich mit den Problemen, die sich daraus ergeben, zu befassen, wie? Seltsamerweise war ich gerade dabei, eine Antwort zu tippen, die Ihnen zeigt, wie Sie dies mit einem benutzerdefinierten Gson JsonSerializer mithilfe von Reflektion erreichen können, wenn Sie kommentierten ...aber ich bin mir sicher, dass Sie das herausfinden werden, vorausgesetzt, Sie haben ein ganzes Team von Profis ... –