【发布时间】:2014-09-30 16:15:23
【问题描述】:
我正在尝试使用 Gson 将 JsonElement 转换为 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"}
令牌:
.expires 和 .issued 字段始终为 null
有什么想法吗? 谢谢。
【问题讨论】:
-
基本上,使用
@SerializedName。 -
这是一个不同的问题。所指出问题的答案在我的情况下不起作用。请重新打开问题以接收新答案。谢谢
-
您尝试输入
@SerializedName(".expires"),但没有成功? -
这个问题显然与你提到的不同。答案或许可以服务,也可以不服务,但问题不是重复的,是不同的,可以服务于有相同问题的人我,更快地找到答案。我不是 Stackoverflow 的新用户,在询问之前先检查过,并没有轻易找到我的问题的答案。
-
您的问题和链接的问题,无论其标题如何,都是关于如何为字段设置自定义名称。如果您还有其他问题,请考虑澄清。
标签: java android json eclipse gson