我有一个对象:
@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都是null
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) }
答案 0 :(得分:0)
Google Client Library JSON显示@Key
符号用法:
public class Item {
@Key
public String id;
@Key
public String value;
}
我和JsonFactory(下面是JacksonFactory)有同样的问题,在我的类定义中使用@Key
表示法解决了它。