java.lang.IllegalArgumentException: instance.id is not a valid JSON field name.
at com.google.gson.JsonFieldNameValidator.validate(JsonFieldNameValidator.java:52)
Atleast gson图书馆似乎在抱怨。但我在json spec中找不到任何东西。
请注意,我已经序列化了名称注释,以避免在java字段名称中出现问题。
@SerializedName("instance.id")
private String instanceId;
更新
这是序列化名称中的错误,这是我所做的修复:
@SdeSerializedName("instance.id")
private String instanceId;
和
new GsonBuilder().setFieldNamingStrategy
(new FieldNamingStrategy() {
public String translateName(final Field field) {
final SdeSerializedName annotation = field.getAnnotation(SdeSerializedName.class);
return ((null != annotation) && null != annotation.value()) ? annotation.value() : field.getName();
}
})
答案 0 :(得分:0)
JSON本身允许,但是(如果我正确理解GSON文档)错误消息是因为它无法将instance.id
映射到同名的Java类成员。
看一下关于映射字段名称的类似问题的跟随线程:
答案 1 :(得分:-1)
由于点“。”已经是javascript中对象和成员名称之间的分隔符(这是json发起的地方),它不能是有效的字段名。