У меня есть пользовательский 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;
...
...
}
}