Google App Engine:Map参数变为JSonMap

时间:2015-02-03 16:11:48

标签: java android google-app-engine

我的端点中有以下方法:

public void test(Map<Long, List<String>> map) {
    //do something with the map
}

但生成的代码需要一个基本上是Map<String, Object>的JsonMap。所以我必须把我的地图放到JsonMap中。

import com.example.mymodule.backend.endpointName.model.JsonMap
.
.
.
public void someMethod(Map mappings) {
    JsonMap map = new JsonMap();
    for (Map.Entry<Long, List<String>> e : mappings.entrySet()) {
        map.put(String.valueOf(e.getKey()), e.getValue());
    }
    endpointServiceHandle.endpoint().test(map).execute();
}

它似乎工作,直到它到达端点中mappings(迭代期间)的末尾。在上一个Key,Value对中Key不是long而且值不是List<String>,但两者都是String

基本上:如何使用Long和List对的Map作为参数?

1 个答案:

答案 0 :(得分:2)

您似乎以一种奇怪的方式解决了这个问题。你有read the docs on endpoints in Java吗?有效的参数类型包括任何java.util.Collection。您可以简单地将所有内容作为字符串映射发送,并根据应用程序的需要解析长/字符串。似乎最后一个键值对失败了,因为地图中的类型与您引用它们的方式不一致,如您所述。