La mia classe:Come impedire a Gson di serializzare/deserializzare il primo carattere di un campo (trattino basso)?
class ExampleBean {
private String _firstField;
private String _secondField;
// respective getters and setters
}
voglio apparire come segue:
{
"FirstField":"value",
"SecondField":"value"
}
E non come questo
{
"_FirstField":"value",
"_SecondField":"value"
}
inizializzo il parser come segue:
GsonBuilder builder = new GsonBuilder();
builder.setDateFormat(DateFormat.LONG);
builder.setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE);
builder.setPrettyPrinting();
set_defaultParser(builder.create());
ho potuto vedere i API e nel documentation di "FieldNamePolicy" Ma io sono sorpreso che non dà la possibilità di saltare "_" so anche che posso usare l'annotazione ...
@ SerializedName (" custom_naming ")
... ma non voglio dover scrivere questo per tutti i miei campi ...
È molto utile per me distinguere tra variabili locali e campi di una classe. :(Qualsiasi idea
EDIT:?. Ci sarebbero molte soluzioni ovvie, (eredità, GSON sovrascrivendo i metodi, esprimono tutti regolari) La mia domanda è più focalizzato sul fatto che v'è una soluzione nativa di GSON o di una correzione meno intrusivo ?
Forse si potrebbe proporre come nuovo FieldNamePolicy?
La risposta è ... Osservare le corrette le convenzioni di denominazione di Java e non lo fanno utilizzare caratteri di sottolineatura. E anche se le convenzioni di denominazione JSON lo consentono, raramente si trova qualcuno che utilizza PascalCase in JSON (che è l'output proposto). L'altra opzione utilizza '@ SerializedName' per ogni nome di campo non corrispondente. –
Non mi hai detto niente che non so. Io e il mio team di professionisti, siamo liberi di scegliere le convenzioni linguistiche che siamo più d'accordo. Soprattutto quando stiamo integrando contemporaneamente diverse tecnologie e lingue. Comunque, grazie per il tuo tempo. – enagra
Allora tu e il tuo "team di professionisti" dovreste essere preparati ad affrontare i problemi che ne derivano, eh? Stranamente ero in realtà nel bel mezzo di digitare una risposta che mostra come si può effettivamente realizzare questo con un Gson JsonSerializer personalizzato utilizzando la riflessione quando hai commentato ...ma sono sicuro che lo capirai, visto che hai un intero team di professionisti ... –