如何从appengine上的memcach获取字符串 - java

时间:2017-01-01 14:41:51

标签: java google-app-engine memcached

我在appengine上使用memcache。 我插入了一个json字符串:

private static CacheFactory cacheFactory = CacheManager.getInstance().getCacheFactory();;
private static Cache cache = cacheFactory.createCache(Collections.emptyMap());;
String data = "{\name\": \"jim\"}";
cache.put("1234", data);

现在我试图从memcache中获取字符串并创建一个json对象:

JSONObject dataObj =   new JSONObject(cache.get("1234")); // log  => {name: "john"}

这对我很有用,我得到了预期的JSON - > {name: "john"}

现在我在创建json之前获取数据;

Object myData = cache.get("1234");
JSONObject dataObj =   new JSONObject(myData); // log => {"bytes":[123,34,110,97,109,101,34,58,34,106,111,104,110,34,125],"empty":false}

现在我收到一个字节对象中的数据 - > {bytes: [12,..],empty: false}

发生了什么?是不是有预期的行为?

修改 我会注意到,当memcach-console上的值保存好了 - > {name: "john"}

1 个答案:

答案 0 :(得分:1)

而不是

Object myData = cache.get("1234");

String myData = (String) cache.get("1234");

顺便说一句,在App Engine上我使用以下代码:

MemcacheService memcache = MemcacheServiceFactory.getMemcacheService();
memcache.put("1234", object);
String myData = (String) memcache.get("1234");