2016-09-21 47 views
0

我有一個字符串作爲documentDB的ID,它很長。解析值時遇到意外的字符:e。路徑'',第0行,位置0,同時試圖刪除documentDB中的文檔

var longId = "Ardell Natural Lashes are popular lashes because women love that they're lightweight, reusable, easy-to-apply and give the desired, natural look of full, beautiful lashes. \n• Ardell false eyelashes are made from sterilized, 100% human hair." 
var documentlink = database + "/doc/" + longId; 

當我想刪除文檔時,我需要從ID創建的文檔鏈接。當我執行該功能,我得到這個異常消息

"Unexpected character encountered while parsing value: e. Path '', line 0, position 0 while trying to delete documents in documentDB." 

任何人都可以建議我如何改變這個字符串是可用一個在documentDB?

回答

0

這裏有幾個問題:

  1. 爲了在字符串中使用「\ n」,你需要逃避它像「\ n」,爲了JSON正確序列化。一旦你這樣做,你會從DocumentDB得到一個有意義的消息:「提供的資源名稱包含無效字符'\'」。 我們不允許將'\'作爲Id的一部分,所以您必須擺脫字符串中的'\ n'才能使其正常工作。

  2. 在聲明中:var documentlink = database +「/ doc /」+ longId; 我不確定什麼是「數據庫」解決,但它應該解決類似於「dbs/your_db_id/colls/your_coll_id」您從\「/ doc /」缺少'',所以這需要更改爲「/ docs /」。 爲了避免創建documentLink時出現所有這些問題,C#SDK有一個UriFactory靜態類,您可以使用它來獲取可以傳遞到DeleteDocumentAsync方法的documentLink(以Uri格式)。下面是它的樣子: Uri documentUri = UriFactory.CreateDocumentUri(database,collection,longId);

其中database是數據庫的id,collection是文檔集合的id。

希望有幫助!

問候, 拉傑什

+0

感謝您的幫助,我無法刪除字符串中的\ n但我已經通過獲取文檔的selflink解決了這個問題。但是,如果您可以建議我如何刪除\ n,這可能非常有用。 –

相關問題