2013-01-10 25 views
0

我曾與以下方式嘗試和得到了失敗,爲什麼我得到一個錯誤無法解析在谷歌應用程序引擎的關鍵的Java

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)... 

從這裏想過去的「鑰匙」的請求參數到一個servlet 。

在我的servlet,

String keyString = req.getParameter("key"); 
Key key = KeyFactory.stringToKey(keyString); 
datastore.delete(key); 

錯誤說:「不能解析:用戶(151)==」和錯誤的行是 「關鍵的關鍵= KeyFactory.stringToKey(KeyString中);」

任何人都可以提出我的想法,

您的幫助將不勝感激。

回答

2

不是傳遞Key如Java對象的servlet,你應該使用這個片段序列化

String encodedKey = KeyFactory.keyToString(key) 

,這反序列化

Key key = KeyFactory.stringToKey(encodedKey) 
+0

我得到它現在..多謝。你能清楚我有一個疑問,當我上傳一個文件,我可以得到的JSON格式的blob密鑰輸出是可能的在谷歌應用程序引擎的Java – sathya

+0

你可以通過'blobKey.getKeyString()':https:///developers.google.com/appengine/docs/java/javadoc/com/google/appengine/api/blobstore/BlobKey#getKeyString() –

+0

是的,我已經得到它作爲字符串,但我的要求是得到作爲JSON,我不知道關於它是否工作,你可以給一些鏈接來獲取blobkeys作爲JSON – sathya

相關問題