2017-07-19 26 views
-3

我一直在試圖將這個語句從C#轉換爲JAVA,沒有太多的運氣。是的,我搜索了Azure,stackoverflow等等,但在java中找不到READDOCUMENT的一個好例子。C#轉Java使用相同的Azure SDK,只是不同的語言

UserInfo response = _DocumentClient.ReadDocument<UserInfo>(UriFactory.CreateDocumentUri(_DBConfiguration.DatabaseID, _DBConfiguration.DocumentCollectionId, pPhoneNumber)); 

這是據我已經得到了:

UserInfo returnUserInfo = null; 
     try { 

      //todo: document link is incorrect, but reference pPhoneNumber as key 
      ResourceResponse<Document> response = _DocumentClient.readDocument(<<NEED To generate URI>>,null); 
      if (response != null) { 
       Document returnUserInfoDocument = response.getResource(); 
       returnUserInfo = <<I have a document, but can't cast it to USERINFO>>; 
      } 
     } 
     catch (DocumentClientException ex) { 
      if (!ex.getError().getCode().equals("NotFound")) { 
       throw ex; 
      } 

     } 

     return returnUserInfo; 

回答

0

我不親自對Java軟件開發工具包,但谷歌搜索turned up this的一點點經驗。這個回購裏面有很多使用例子。

您正在努力的部分正在生成文檔URI。目前看來,在C#中,這是抽象化了一點與一些工廠方法構建字符串你,但你可以看到的例子鏈接在Java中的等價物是:

你的情況,你會
String documentLink = String.format("/dbs/%s/colls/%s/docs/%s", databaseName, collectionName, family.getId()); 
this.client.readDocument(documentLink, new RequestOptions()); 

所以只需使用電話號碼字段(或者不管你的文檔標識以這種格式與你的文檔和集合ID有關)

只要將響應轉換爲UserInfo,就可以將響應視爲JSON字符串並使用JSON在C#中我們使用Newtonsoft,但是在Java中必須有足夠的選項,只要試着用Google搜索java json deserialize,我相信你能找到很多的資源。

只是爲了記錄我沒有降低你的問題,但我可以理解人們爲什麼這麼做,也許你可以把這當成一個成長的機會。我從字面上輸入documentdb java到谷歌,前兩個鏈接是代碼示例的GitHub回購完整。在期待別人爲你做你的研究之前,你應該嘗試進行更加努力的搜索。

+0

Tks-你在SDK之間爲我引發了一個不同的視角。 stackoverflow有很多「代碼爲我的問題」,但我的搜索上下文非常不同 - 我使用「Azure JAVA sdk ReadDocument」 - 它返回了一個不同的結果集。我應該像你一樣使用更一般的搜索,但是,您提供的鏈接顯示了一種技術來確定文檔是否存在,並通過異常進行管理。它對返回值沒有任何作用,這可能是我解僱它的原因。不過,你也幫助過JSON,讓我走上正軌。謝謝您的幫助! – codeputer