解析值时遇到意外字符:e.试图删除documentDB中的文档时,路径'',第0行,位置0

本文关键字:文档 路径 位置 0行 documentDB 意外 遇到 字符 删除 | 更新日期: 2023-09-27 18:08:05

我有一个字符串作为documentDB的ID,它很长。

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?

解析值时遇到意外字符:e.试图删除documentDB中的文档时,路径'',第0行,位置0

这里有几个问题:

  1. 为了在字符串中使用''n',您需要像''n'那样转义它,以便JSON正确地序列化它。一旦这样做,您将从DocumentDB获得一条有意义的消息:"呈现的资源名称包含无效字符'''"。我们不允许'''作为Id的一部分,所以你必须从你的字符串中去掉''n'以使其工作。

  2. 在语句中:var documentlink = database + "/doc/" + longId;我不确定"数据库"解析为什么,但它应该解析为"dbs/your_db_id/colls/your_coll_id"之类的东西,您从"/doc/"中丢失了"s",所以这需要更改为"/docs/"。为了避免创建documentLink的所有这些问题,c# SDK有一个UriFactory静态类,您可以使用如下方式获取documentLink(以Uri格式),您可以将其传递给DeleteDocumentAsync方法。它是这样的:Uri documentUri = UriFactory。

其中database是数据库的id, collection是文档集合的id。

希望有帮助!

问候,Rajesh