【问题标题】:Deserialize JSON element containing arbitrary names and datatypes反序列化包含任意名称和数据类型的 JSON 元素
【发布时间】:2014-01-20 16:24:34
【问题描述】:

我试图反序列化一个 JSON 元素,其中该元素可以包含 0 到多个名称/值对和 0 到多个名称/[] 对。值可以是 int、String、date 等

一个示例元素:

{"custom_fields":{ 
    "custom_label_36562": 25057, 
    "custom_label_36677": "some string",
    "custom_label_36566": [25085],
    "custom_label_36564": [25076,25077,28709,25078]   }}

最好的方法是什么?我尝试将其解析为:

  • HashMap<String,List<<String>>
  • HashMap<String,List>`

但两次都以 null 结束。我实际上知道每个“自定义标签”的数据类型,所以我只需要将值输入 Java,然后我可以稍后再转换它。

PS 如何输入一个

【问题讨论】:

  • ` 中换行以添加代码段。
  • 你使用的是什么 JSON 解析器?
  • 告诉解析器解析它。不要告诉它如何。
  • 我想我可以将它反序列化为一个对象...

标签: java json deserialization gson


【解决方案1】:

没有人回答这个问题,我猜我只是反序列化它 Object 并从那里拿走它......

【讨论】:

  • 嗯,你可以选择HashMap<String,Object>,或者HashMap<String,HashMap<String,Object>>
  • 将其反序列化为 HashMap、HashMap、HashMap> 都会导致值被解析为 null。所以我必须选择对象。这将返回一个 StringMap 对象...我不知道是使用它还是尝试让 GSON 解析成 JSON 树并从那里开始会更好...
  • 如果它不能解析为HashMap<String,Object>,那么我怀疑你做错了什么。但当然无论如何你得到的是一个“JSON树”。
猜你喜欢
  • 1970-01-01
  • 2020-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多