我的类:如何防止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