我有一个对象:
@JsonIgnoreProperties(ignoreUnknown = true)
public class OauthPrincipal {
@JsonProperty
String id;
@JsonProperty
String name;
@JsonProperty
String email;
public OauthPrincipal() {
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
... other [get|set]ters
}当我这样做的时候,它是有效的:
final String jsonIdentity = request.execute().parseAsString();
debug(jsonIdentity);
ObjectMapper om = new ObjectMapper();
OauthPrincipal o;
o = om.readValue(jsonIdentity, OauthPrincipal.class);
return o;但是当我使用JsonFactory (它是一个new JacksonFactory() )时,对于同一个JSON,所有字段都是空的
jf.fromString(json, OauthPrincipal.class
日志中的JSON是:
07:31:44,040 ERROR [stderr] (default task-6) {
07:31:44,040 ERROR [stderr] (default task-6) "id": "11",
07:31:44,040 ERROR [stderr] (default task-6) "email": "example@gmail.com",
07:31:44,040 ERROR [stderr] (default task-6) "verified_email": true,
07:31:44,040 ERROR [stderr] (default task-6) "name": "mike",
07:31:44,040 ERROR [stderr] (default task-6) "given_name": "mike",
07:31:44,040 ERROR [stderr] (default task-6) "family_name": "b",
07:31:44,040 ERROR [stderr] (default task-6) "link": "https://plus.google.com/xyz",
07:31:44,040 ERROR [stderr] (default task-6) "picture": "https://lh3.googleusercontent.com/snipped/photo.jpg",
07:31:44,040 ERROR [stderr] (default task-6) "locale": "en"
07:31:44,040 ERROR [stderr] (default task-6) }发布于 2017-11-16 23:21:56
谷歌的Client Library JSON显示了@Key符号的用法:
public class Item {
@Key
public String id;
@Key
public String value;
}我用JsonFactory (下面的JacksonFactory )也遇到了同样的问题,在我的类定义中使用@Key符号解决了这个问题。
https://stackoverflow.com/questions/37896471
复制相似问题