Ответ 1
Взято из документов:
Gson поддерживает некоторые предопределенные политики именования полей для преобразования стандартных имен полей Java (то есть имена с верблюжьим именем, начинающиеся с нижнего регистра --- sampleFieldNameInJava), к имени поля Json (например, sample_field_name_in_java или SampleFieldNameInJava). См. Класс FieldNamingPolicy для получения информации о предопределенных политиках именования.
Он также имеет основанную на аннотации стратегию, позволяющую клиентам определять пользовательские имена для каждого поля. Обратите внимание, что стратегия на основе аннотаций имеет проверку имени поля, которая приведет к возникновению исключений "Runtime", если в качестве значения аннотации указано недопустимое имя поля.
Ниже приведен пример использования функций политики именования Gson:
private class SomeObject {
@SerializedName("custom_naming")
private final String someField;
private final String someOtherField;
public SomeObject(String a, String b) {
this.someField = a;
this.someOtherField = b;
}
}
SomeObject someObject = new SomeObject("first", "second");
Gson gson = new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE).create();
String jsonRepresentation = gson.toJson(someObject);
System.out.println(jsonRepresentation);
======== ВЫХОД ========
{"custom_naming":"first","SomeOtherField":"second"}
Однако, для чего вы хотите, вы можете просто использовать это:
Gson gson = new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE).create();
Используя параметр UPPER_CAMEL_CASE, вы достигнете своей цели.