我在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"}
答案 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");