我正在使用来自google-api-client的youtube json:
{ "apiVersion": "2.0", "data": { "updated": "2011-01-05T13:48:33.146Z", "totalItems": 4, "startIndex": 1, "itemsPerPage": 1, "items": [ { "id": "YfUzMkAlOBI", "uploaded": "2010-12-29T16:50:47.000Z", "updated": "2010-12-29T16:50:47.000Z", "uploader": "devandroidcs", "category": "Entertainment", "title": "Teste 2", "description": "Description do teste2", "tags": [ "mobile" ], "thumbnail": { "sqDefault": "http://i.ytimg.com/vi/YfUzMkAlOBI/default.jpg", "hqDefault": "http://i.ytimg.com/vi/YfUzMkAlOBI/hqdefault.jpg" }, "player": { "default": "http://www.youtube.com/watch?v\u003dYfUzMkAlOBI&feature\u003dyoutube_gdata_player", "mobile": "http://m.youtube.com/details?v\u003dYfUzMkAlOBI" } . . . }
在这一点上,我应该在我的解析java类中创建一个名为default的字段名称。已经完成了与其他字段的解析工作,问题是,default是一个私有Java名称,所以我不能调用一个变量default。
我该如何处理?
我相信您的答案在于JSON字段命名支持:
Gson支持一些预定义的字段命名策略,以将标准Java字段名称(即以小写—“ sampleFieldNameInJava”开头的驼峰式名称)转换为Json字段名称(即sample_field_name_in_java或SampleFieldNameInJava)。
例如,请参见以下示例:
private class SomeObject { @SerializedName("custom_naming") private final String someField; private final String someOtherField; public SomeObject(String a, String b) { this.someField = a; this.someOtherField = b; } }
因此,您应该能够将字段映射定义为默认值,如下所示:
@SerializedName("default") private final String someOtherNameThanDefault;