当字段名以点开头时,java将Json转换为对象
我正在尝试使用Gson将JSOneElement转换为Object。 问题是JsonObject有两个字段,名称以点开头,当我使用gson时,这些字段没有映射。fromJson方法
这是Json对象(令牌对象):
{
"access_token":"boQtj0SCGz2GFGz[...]",
"token_type":"bearer",
"expires_in":1209599,
"userName":"gonzalo",
".issued":"Mon, 14 Oct 2014 06:53:32 GMT",
".expires":"Mon, 28 Oct 2014 06:53:32 GMT"
}
这是目标类:
private class BearerToken{
public String access_token;
public String token_type;
public String expires_in;
public String userName;
public Date issued;
public Date expires;
public BearerToken(){
}
}
这是我的代码和结果:
HttpResponse resp = httpClient.execute(post); // request to server
String respStr = EntityUtils.toString(resp.getEntity()); // json token
JsonParser parser = new JsonParser();
sonElement jsonElement = parser.parse(respStr);
BearerToken token = new BearerToken();
Gson gson = new Gson();
token = gson.fromJson(jsonElement, token.getClass());
respStr:
{"access_token":"d7NDuC7accTA[....]",
"token_type":"bearer",
"expires_in":1209599,
"userName":"43344",
".issued":"Tue, 30 Sep 2014 16:03:17 GMT",
".expires":"Tue, 14 Oct 2014 16:03:17 GMT"}
代币:
字段。过期和。发出的始终为空
有什么想法吗? 谢谢
# 1 楼答案
在适当的字段上设置适当的
@SerializedName
您的问题是Gson不知道如何将JSON日期字符串反序列化为
Date
对象你必须添加一个合适的日期格式