为什么我在google app engine for java中无法解析密钥时出错

为什么我在google app engine for java中无法解析密钥时出错,java,google-app-engine,Java,Google App Engine,我试过下面的方法但失败了 Query query = new Query("Users"); List<Entity> results = datastore.prepare(query).asList(FetchOptions.Builder.withLimit(PAGE_SIZE)); for (Entity user : results){ Key key = user.getKey(); System.out.println(key); // here am getting

我试过下面的方法但失败了

Query query = new Query("Users");
List<Entity> results = datastore.prepare(query).asList(FetchOptions.Builder.withLimit(PAGE_SIZE));
for (Entity user : results){
Key key = user.getKey();
System.out.println(key); // here am getting as Users(151),Users(152)...
错误为“无法解析:用户(151)==”,错误行为“Key=KeyFactory.stringToKey(keyString);”

谁能给我提个主意吗


非常感谢您的帮助。

您应该使用此代码段来序列化,而不是将
键作为java对象传递给servlet

String encodedKey = KeyFactory.keyToString(key)
这就是反序列化

String encodedKey = KeyFactory.keyToString(key)
Key key = KeyFactory.stringToKey(encodedKey)

我现在明白了。。谢谢。当我上传一个文件时,你能帮我澄清一个疑问吗?我能以JSON格式获得blob密钥输出吗?在google app engine for Java中有可能吗?你能通过
blobKey.getKeyString()以字符串的形式获得它吗
:是的,我已经将其作为字符串获取,但我的要求是作为JSON获取,我不知道它是否有效。能否提供一些链接以将blobkeys作为JSON获取?只需自己创建JSON:
“{'blobKey':'”+blobKey.getKeyString()+“}”