当字段名称以点开头时,将Json转换为Object

贡扎洛

我正在尝试使用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

有什么想法吗?谢谢。

Sotirios Delimanolis

@SerializedName适当的字段上设置适当后

@SerializedName(".expires")
public Date expires;

您的问题是Gson不知道如何将JSON日期字符串反序列化为Date对象。

您必须添加适当的日期格式。

GsonBuilder builder = new GsonBuilder();
builder.setDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz");     
Gson gson = builder.create();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用vim搜索将JSON字段名称括在引号中并替换

来自分类Dev

字段名称未知时访问结构中的数据

来自分类Dev

在argonaut中转换JSON字段名称

来自分类Dev

在Groovy中序列化为JSON时更改字段名称

来自分类Dev

是否可以在获取数据PDO PHP时将字段名称传递为$ variable?

来自分类Dev

ObjectMapper writeValueAsString()方法将字段名称转换为小写

来自分类Dev

将json解析为具有小写字段名称的数据结构

来自分类Dev

MongoError异常:FieldPath字段名称不能以“ $”开头

来自分类Dev

在进行杰克逊反序列化时,如何将JSON字段名称转换为Java兼容的属性名称?

来自分类Dev

将Django字段名称设为camelCase是否安全?

来自分类Dev

PHP:将对象转换为数组会给我带名称空间的数组字段名称索引吗?

来自分类Dev

使用Django rest框架时更改字段名称

来自分类Dev

使用动态字段名称将JSON反序列化为C#类

来自分类Dev

在Laravel 7中使用copy()方法时将文本追加到字段名称

来自分类Dev

Proto3 JSON不将字段名称转换为camelCase

来自分类Dev

更改字段名称

来自分类Dev

在Groovy中序列化为JSON时更改字段名称

来自分类Dev

JPA字段名称大小写与JSON字段名称不匹配

来自分类Dev

创建数组时,Jackson2 Java to Json数组会忽略字段名称

来自分类Dev

JSON的Java对象:字段名称

来自分类Dev

按字段名称对json字段进行排序

来自分类Dev

获取JSON的字段名称

来自分类Dev

字段名称为unknowm时解析jsonObject

来自分类Dev

在删除非数字字段名称的同时将对象转换为数组

来自分类Dev

Logstash 将字段名称转换为全部小写

来自分类Dev

将 JSON 对象映射到不同的架构字段名称

来自分类Dev

如何在 Java 中预处理 Json 字符串 :: 将大写的字段名称转换为小写的驼峰式名称

来自分类Dev

ROOM 实体 api 字段名称以数字开头

来自分类Dev

如何在Javascript中将对象的字段名称转换为值

Related 相关文章

  1. 1

    使用vim搜索将JSON字段名称括在引号中并替换

  2. 2

    字段名称未知时访问结构中的数据

  3. 3

    在argonaut中转换JSON字段名称

  4. 4

    在Groovy中序列化为JSON时更改字段名称

  5. 5

    是否可以在获取数据PDO PHP时将字段名称传递为$ variable?

  6. 6

    ObjectMapper writeValueAsString()方法将字段名称转换为小写

  7. 7

    将json解析为具有小写字段名称的数据结构

  8. 8

    MongoError异常:FieldPath字段名称不能以“ $”开头

  9. 9

    在进行杰克逊反序列化时,如何将JSON字段名称转换为Java兼容的属性名称?

  10. 10

    将Django字段名称设为camelCase是否安全?

  11. 11

    PHP:将对象转换为数组会给我带名称空间的数组字段名称索引吗?

  12. 12

    使用Django rest框架时更改字段名称

  13. 13

    使用动态字段名称将JSON反序列化为C#类

  14. 14

    在Laravel 7中使用copy()方法时将文本追加到字段名称

  15. 15

    Proto3 JSON不将字段名称转换为camelCase

  16. 16

    更改字段名称

  17. 17

    在Groovy中序列化为JSON时更改字段名称

  18. 18

    JPA字段名称大小写与JSON字段名称不匹配

  19. 19

    创建数组时,Jackson2 Java to Json数组会忽略字段名称

  20. 20

    JSON的Java对象:字段名称

  21. 21

    按字段名称对json字段进行排序

  22. 22

    获取JSON的字段名称

  23. 23

    字段名称为unknowm时解析jsonObject

  24. 24

    在删除非数字字段名称的同时将对象转换为数组

  25. 25

    Logstash 将字段名称转换为全部小写

  26. 26

    将 JSON 对象映射到不同的架构字段名称

  27. 27

    如何在 Java 中预处理 Json 字符串 :: 将大写的字段名称转换为小写的驼峰式名称

  28. 28

    ROOM 实体 api 字段名称以数字开头

  29. 29

    如何在Javascript中将对象的字段名称转换为值

热门标签

归档