我正在使用最新的C#-driver for MongoDB.我将以下代码添加到我的程序中以在camelcase中序列化:
var camelCaseConvention = new ConventionPack { new CamelCaseElementNameConvention() };
ConventionRegistry.Register("CamelCase", camelCaseConvention, type => true);
Run Code Online (Sandbox Code Playgroud)
但是,在使用序列化后尝试查询文档时出现问题.例如:
var query = _collection.AsQueryable<TimeSeries>();
Console.WriteLine(query.ToJson());
Run Code Online (Sandbox Code Playgroud)
返回以下内容:
{ "_id" : ObjectId("54af0e848c27be15fc47a0d9"), "Name" : null, "Time" : null }
Run Code Online (Sandbox Code Playgroud)
即,除了id之外,所有属性似乎都是null.
对象序列化正确,字段名称为驼峰("名称"和"时间"),每个文档包含正确的数据("名称":测试1"和"时间":2014).
似乎问题是查询函数没有意识到字段在camelcase中,因此返回null.因此,我无法反序列化任何对象.
有什么办法可以避免这个错误吗?
我已经实现了一个模糊匹配算法,我想使用一些带有测试数据的示例查询来评估它的召回率。
假设我有一个包含文本的文档:
{"text": "The quick brown fox jumps over the lazy dog"}
Run Code Online (Sandbox Code Playgroud)
我想看看我是否可以通过测试诸如“sox”或“hazy drog”而不是“fox”和“lazy dog”之类的查询来检索它。
换句话说,我想向字符串添加噪音以生成拼写错误的单词(错别字)。
自动生成带有拼写错误的单词以评估模糊搜索的方法是什么?
我在Visual Studio中使用从我的数据库复制的JSON字符串运行一些C#单元测试,例如:
{
"key" : "Foo",
"format" : "Bar"
}
Run Code Online (Sandbox Code Playgroud)
我想在我的代码中将JSON字符串解析为JObject:
JObject.Parse(
"{
"key" : "Foo",
"format" : "Bar"
}");
Run Code Online (Sandbox Code Playgroud)
但是,我不能这样做,因为Visual Studio不会转义字符串中的引号.
我知道我可以添加转义字符,但是,字符串可能很长,这意味着手动添加转义字符需要很长时间.
将复制的JSON字符串解析为JObject的最简单方法是什么?
我有一个ASP.NET MVC应用程序,它在Session中存储来自我的Web API的JWT令牌和刷新令牌.我的问题是当JWT令牌到期时该怎么办,是时候刷新它了.我认为我的两个选择是:
尝试使用JWT令牌向Web API发出请求,如果它返回401 Unauthorized,请尝试刷新JWT令牌.
使用计时器在JWT令牌到期之前自动刷新它.
使用这两种方法中的任何一种有什么好处,我如何以简单的方式以编程方式实现它们?例如,如果我使用选项1,是否必须使用try和catch来对API进行每次调用?
c# ×3
asp.net ×1
asp.net-mvc ×1
fuzzy-search ×1
json ×1
jwt ×1
mongodb ×1
nlp ×1
python ×1
session ×1