【发布时间】:2018-12-06 19:09:42
【问题描述】:
我正在使用 .NET WCF 服务返回一个字符串,该字符串包含来自我在 MongoDB 中的数据库的 JSON。它运行良好,但是当我执行 GET 时,我得到一个带有 \" 而不是简单的 "
的 Json 文件例如。我得到\"id\" 而不是"id"
这是我的代码:
string IDeviceService.GetDeviceList()
{
IMongoCollection<BsonDocument> collection = DatabaseManager.DeviceCollection();
string deviceList = string.Empty;
var devices = collection.Find(new BsonDocument()).ToList();
foreach (var device in devices)
{
string json = device.ToString();
deviceList = (deviceList + json);
}
return deviceList;
}
我尝试做一个 .Replace("\\", "") 应该可以解决问题,但它什么也没做。
有什么想法吗?
【问题讨论】:
-
\"表示报价被转义。因此,如果它在内容中,您应该 将其转义,这样它就不会终止并导致 JSON 格式错误。如果密钥被转义,那么您应该首先查看它是否正确插入到数据库中 -
关于您的
.Replace("\\", "")不起作用:字符串是不可变的,因此您必须将该方法的结果分配给一个变量。但是,是的,删除转义的反斜杠可能不是一个好主意,具体取决于上下文 -
如果您发布了您要返回的 json 示例,这将有所帮助。我知道你展示了
\"id\",但它确实有助于了解结构中的内容/位置的上下文