Google Cloud Endpoints无法返回Map(而是返回JsonMap)

时间:2013-11-28 03:40:30

标签: android json google-app-engine google-cloud-endpoints

Google Cloud Endpoints返回JsonMap而不是我的服务器端Map<Long,Long>如何获取Map<Long,Long>

在Google App Engine方面,我定义了一个返回地图的Google云端点:

@ApiMethod(path="somebendpoint/somename")
public Map<Long, Long> getSomething(@Named("x")int x, User user){
    Map<Long, Long> map = ...   
    return map;
}

在Android客户端,我用

检索它
wEndpoint.wEndpoint().getSomething(x).execute();

但返回类型为JsonMap,即Map<String,Object>

---

---编辑(在包装类中包装地图似乎也不起作用)

我在服务器端将Map包装在一个包装类中,如下所示:

public class WrapperMap implements Serializable {
    private Map<Long, Long> wrapperMap;
    public WrapperMap(){
    }
    public setMap(Map<Long, Long> map){
        wrapperMap = map;
    }
    public Map<Long, Long> getMap(){
        return wrapperMap;
    }
} 

但仍在客户端,当我这样做时:

WrapperMap temp = wEndpoint.wEndpoint()。getSomething(x).execute();

temp.getMap()会返回JsonMap,而不是Map<Long,Long>

由于

1 个答案:

答案 0 :(得分:0)

使用端点,您不必自己执行JSON或de-JSON,而是端点为您完成。但我认为你需要将你的地图包装在一个类中才能使其工作,请参阅this post