我的類:如何防止Gson序列化/反序列化字段的第一個字符(下劃線)?
class ExampleBean {
private String _firstField;
private String _secondField;
// respective getters and setters
}
我希望出現如下:
{
"FirstField":"value",
"SecondField":"value"
}
而且不喜歡這個
{
"_FirstField":"value",
"_SecondField":"value"
}
我初始化解析器如下:
GsonBuilder builder = new GsonBuilder();
builder.setDateFormat(DateFormat.LONG);
builder.setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE);
builder.setPrettyPrinting();
set_defaultParser(builder.create());
我可以看到API和「FieldNamePolicy」的documentation但我很驚訝,沒有給跳過選項「_」 我也知道我可以使用註釋...
@ SerializedName (" custom_naming ")
...但不希望必須寫這全部我的領域...
這是非常有用的區分本地變量和類的字段。 :(任何想法
編輯:?會有很多明顯的解決方案,(繼承,GSON覆蓋方法,定期expresions)我的問題是更側重於是否有GSON的本地解決方案或干擾較小修復?
也許我們可以提出新的FieldNamePolicy?
答案是...遵循正確的Java命名約定和不使用下劃線。即使JSON命名約定允許,你很少會在JSON中找到任何使用PascalCase的人(這就是你提出的輸出結果)。您的其他選項是對每個不匹配的字段名稱使用「@ SerializedName」。 – 2013-02-19 21:40:34
你沒有告訴我任何我不知道的事情。我和我的專業團隊,我們可以自由選擇我們更加認同的語言慣例。特別是當我們同時整合各種技術和語言時。無論如何,謝謝你的時間。 – enagra 2013-02-20 17:20:14
那麼你和你的「專業團隊」應該準備好處理由此產生的問題,呃?奇怪的是,我實際上正在輸入一個答案,告訴你如何在你評論時用一個自定義的Gson JsonSerializer使用反射來實現它。但我相信你會弄清楚,因爲你有一個專業團隊...... – 2013-02-20 17:22:44