#c# #json #string #elasticsearch #elasticsearch-query
#c# #json #строка #elasticsearch #elasticsearch-запрос
Вопрос:
{
"from": 0,
"query": {
"bool": {
"must": [
{
"query_string": {
"analyze_wildcard": true,
"default_operator": "and",
"fields": [
"applicationCd"
],
"query": "$applicationCd"
}
},
{
"query_string": {
"analyze_wildcard": true,
"default_operator": "and",
"fields": [
"entityStatusDesc"
],
"query": "$entityStatusDesc"
}
},
{
"query_string": {
"analyze_wildcard": true,
"default_operator": "and",
"fields": [
"stepUserName"
],
"query": "$stepUserName"
}
},
{
"match": {
"model": {
"query": "instance"
}
}
}
]
}
},
"size": 10,
"sort": [
{
"instanceId": {
"missing": "_last",
"order": "desc"
}
}
]
}
У меня есть файл json, и я просто хочу удалить весь блок внутри области must из-за заданного имени поля (applicationCd, EntityStatusDesc, StepUsername).Например, если заданным полем является applicationCd, я хочу полностью удалить это поле, и мой json должен выглядеть следующим образом.Я буду благодарен, если кто-нибудь сможет мне помочь.Спасибо.
{
"from": 0,
"query": {
"bool": {
"must": [
{
//deleted part
"query_string": {
"analyze_wildcard": true,
"default_operator": "and",
"fields": [
"entityStatusDesc"
],
"query": "$entityStatusDesc"
}
},
rest of the code is same
Комментарии:
1. Почему вы хотите это сделать? Я спрашиваю, потому что это похоже на запрос ElasticSearch.
2. да, я использую запрос для поиска и хочу удалить части из-за заданных ключевых слов, если они пусты.
3. Не было бы разумнее построить запрос на основе ключевых слов, которые вы хотите найти, вместо того, чтобы пытаться удалить их из JSON после факта?
4. Да, это правда, но это проект компании, и, к сожалению, у меня нет разрешения на это. Я должен манипулировать запросом перед вызовом метода.
5. Ну, теперь это весело, не так ли? Я бы использовал JSON.NET чтобы десериализовать его в a
JObject
, а затем перейти кmust
массиву, а затем найти элементы, которые вы хотите удалить, и удалить их. Наконец, вы можете сериализовать его обратно в JSON.