我们的组织最近将其数据库从sqlserver更改为elasticsearch,我打算为此创建一个应用程序,
我可以成功创建一个索引,并用一些信息填充该索引,但是当我检索该信息时,它将返回我真正想要的数据以及在这种情况下我并不需要的大量元数据,现在我的问题是如何提取我需要的确切数据以及如何将其存储在列表中,
这是当我按下搜索索引按钮时来自服务器的响应
但是我对第二个“匹配”之后的信息感兴趣,尤其是我想提取“ _id”,“名字”,“姓氏”并将其存储在具有相应字段的人员类型的通用列表中。
它是代码隐藏文件中的代码
答案 0 :(得分:1)
将示例JSON响应复制到剪贴板,并通过以下方式生成一些Json类:
a。在Visual Studio中,选择“编辑” /“选择性粘贴” /“将JSON粘贴为类”
b。如果您的数据不敏感/可以清除它,请使用在线网站,例如http://json2csharp.com
然后从Root对象反序列化。
using var stream = new MemoryStream(data);
using var reader = new StreamReader(stream, Encoding.UTF8);
using var jsonReader = new JsonTextReader(reader);
var json = JsonSerializer.Create().Deserialize<Rootobject>(jsonReader);
然后把你需要的东西拿走。
var response = json.hits.hits;
您可以通过清理不想反序列化的外部对象的所有属性来进一步优化该过程。