如何使用 Moshi 将地图转换为 json

use*_*005 2 java json hashmap moshi

我正在尝试使用 moshi 将 Map 转换为 json 但我找不到任何帮助。

 val attentionNumbepAdapter: JsonAdapter<Map<String, Employee>> = moshi
                .adapter(Types.newParameterizedType(Map::class.java, String::class.java, Employee::class.java))
Run Code Online (Sandbox Code Playgroud)

但它给出了IllegalArgumentException. 知道如何正确解决这个问题吗?

Dmi*_*sov 5

答案可能有点晚了,但仍然在这里。

使用 moshi 将 Map 转换为 Json 的示例方法:

  private <K, V> String objectsMapToJson(Class<K> key, Class<V> value, Object json) {
    return moshi()
        .adapter(Types.newParameterizedType(Map.class, key, value))
        .toJson(json);
  }
Run Code Online (Sandbox Code Playgroud)

用法:

      Map<String, Employee> employeeMap = new HashMap<>();

      //populate map with some data

      String json = objectsMapToJson(String.class, Employee.class, employeeMap);
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你。