私のクラス: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());
を
...私はまた、私はアノテーションを使用することができます知っている
@ SerializedName (" custom_naming ")
を私はAPIと「FieldNamePolicy」のdocumentation中を見ることができましたが、私はスキップするオプションを与えていないことを驚いて「_」...私のフィールドalllllllのためにこれを書く必要はありません...
私は、ローカル変数とクラスのフィールドを区別することは非常に便利です。 :(任意のアイデア
EDIT:?(上書き方法gson継承、定期expresions)、多くの明白な解決策があるでしょう私の質問はgsonのネイティブ溶液または控えめ修正があるかどうかに重点を置いています。 ?
多分、我々は新しいFieldNamePolicyとして提案することができる?
を生成
ですアンダースコアを使用します。 JSONの命名規則では許可されていますが、JSONでPascalCaseを使用している人はほとんど見つかりません(これがあなたの提案する出力です)。あなたの他のオプションは、一致しないすべてのフィールド名に '@ SerializedName'を使用しています。 –
私は知らないことは教えてくれませんでした。私と私の専門家のチームは、我々がもっと同意する言語規則を自由に選ぶことができます。特に、さまざまなテクノロジと言語を同時に統合する場合。とにかく、ありがとうございました。 – enagra
あなたとあなたの "専門家のチーム"は、そこから生じる問題に対処する用意があるべきですか?奇妙なことに、私は実際にコメントしたときにリフレクションを使用してカスタムGson JsonSerializerでこれを実際に達成する方法を示す回答を入力していました。しかし、私はあなたが専門家のチーム全体を持っていることを考えると、あなたがそれを理解すると確信しています... –