gpt4 book ai didi

elasticsearch - 弹性NEST反序列化错误的字段

转载 作者:行者123 更新时间:2023-12-03 01:37:16 25 4
gpt4 key购买 nike

使用ElasticSearch.Net v6.0.2

给定索引项目

   {
"PurchaseFrequency": 76,
"purchaseFrequency": 80
}

和POCO对象
public class Product
{
public int PurchaseFrequency { get; set; }
}

和设置
this.DefaultFieldNameInferrer(x => x);

即使这是错误的字段,Nest也会返回PurchaseFrequency = 80。

如何获得NEST从ElasticSearch中提取正确的大小写字段?

最佳答案

我认为这不太容易实现,因为NEST在内部使用了this behaviour is defined in Json.NET(不是6.x的直接依赖项,它被IL合并到了程序集中)。

例如,

JsonConvert.DeserializeAnonymousType("{\"a\":1, \"A\":2}", new { a = 0 })

将匿名类型属性 a值反序列化为 2。但
JsonConvert.DeserializeAnonymousType("{\"A\":2, \"a\":1}", new { a = 0 })

将匿名类型属性 a值反序列化为 1,即,属性在返回的JSON中出现的顺序与分配给类型实例的属性的最终值有关。

如果可以,请避免仅大小写不同的JSON属性名称。如果不能,则需要在 hook up the JsonNetSerializer中输入 NEST.JsonSerializer nuget package并为您的类型编写一个自定义的 JsonConverter,该代码仅符合预期的大小写。

关于elasticsearch - 弹性NEST反序列化错误的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51364681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com