【问题标题】:Moshi HashMap deserializerMoshi HashMap 反序列化器
【发布时间】:2016-09-16 12:35:18
【问题描述】:

我不知道是否可以将数组反序列化为 hashMap 我有 json :

"additionalProperties": [
{
  "$type": "Tfl.Api.Presentation.Entities.AdditionalProperties, Tfl.Api.Presentation.Entities",
  "category": "Description",
  "key": "TerminalName",
  "sourceSystemKey": "BikePoints",
  "value": "200017",
  "modified": "2016-05-19T12:02:39.82"
}
........
]

对于那个 json 我有列表:

private List<AdditionalProperties> additionalProperties;

一切都很完美,但是如何将 json 存储在 Key 为“key”(TerminalName)”的 HashMap 中

private HashMap<String,AdditionalProperties> additionalProperties;

【问题讨论】:

  • 那么additionalProperties 的 JSON 数组中的第一个对象是一个 AdditionalProperties 对象?并且您想提取key 的字符串并将其作为Map 中整个对象的键?如果是这种情况,最简单的方法可能是创建一个中间对象并使用 @ToJson@FromJson 注释方法对其进行转换。看看github.com/square/moshi/blob/master/README.md#another-example

标签: android moshi


【解决方案1】:

Moshi 支持声明为 Map 的字段,但不支持声明为 HashMap 的字段。这样,Moshi 可以使用 Map 的不同实现,它比 HashMap 更适合解码 JSON。如果您将字段的类型更改为Map&lt;String,AdditionalProperties&gt;,它应该可以工作。

【讨论】:

  • 此答案应标记为正确答案。
猜你喜欢
  • 1970-01-01
  • 2019-04-03
  • 2011-08-26
  • 1970-01-01
  • 2023-03-04
  • 2018-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多