Gson: получение имени поля TyperAdapter Write Method - PullRequest
0 голосов
/ 18 октября 2019

У меня есть пользовательский TypeAdapter, определенный для сериализации json с использованием gson.

public class CarAdapter extends TypeAdapter<String> {

  @Override
  public String read(JsonReader reader) throws IOException {
    return reader.nextString();
  }

  @Override
  public void write(JsonWriter writer, String input) throws IOException {
    writer.value(input);
  }

}

Ссылочный класс,

 class Car
        {
        @JsonAdapter(CarAdapter.class)
        string make;

        @JsonAdapter(CarAdapter.class)
        string model;

        @JsonAdapter(CarAdapter.class)
        string vinNo;

        @JsonAdapter(CarAdapter.class)
        string regNo;

        ...
        ...
        }

Я хочу изменить метод записи Адаптера на что-то вроде этого ниже, чтобы я мог применить некоторые функции к некоторым строковым полям в классе Car (vinNumber,REGNO). Есть ли способ получить fieldName (через отражение, может быть) в методе записи.

   @Override
    public void write(JsonWriter writer, String input) throws IOException {
    String value = null;
    value = transformField(input, `fieldName`);
    writer.value(value);
  }

private string transformField(string input, string fieldName)
{

switch(fieldName){

case "fieldName1"
return "Foo" + input;
break;
case "fieldName2"
return "Bar" + input;
break;
...
...
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...