代码之家  ›  专栏  ›  技术社区  ›  user1288005

如何使用Moshi将map转换为json

  •  0
  • user1288005  · 技术社区  · 7 年前

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

    但它给了 IllegalArgumentException . 你知道如何正确处理这个问题吗?

    0 回复  |  直到 7 年前
        1
  •  2
  •   Dmitri Korobtsov    6 年前

    答案可能有点晚了,还在这里。

    使用moshi将映射转换为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);
      }
    

          Map<String, Employee> employeeMap = new HashMap<>();
    
          //populate map with some data
    
          String json = objectsMapToJson(String.class, Employee.class, employeeMap);
    

    希望有帮助。