Durchsuchen Sie Json-Objekte mit den Operatoren „AND' und „OR'.
P粉029327711
P粉029327711 2023-09-06 10:23:16
0
1
670

Ich habe ein Problem, bei dem ich ein JSON-Objekt mithilfe einer bedingten Operatorzeichenfolge durchsuchen muss.

JSON-Objekt sieht aus wie

let Data = [
  {Application: 'APIM', Owner: 'Vande Mataram','Customer Code': 'DJLFKASJF',Environment: 'Dev',OS: 'Linux',Region: 'EU','TEAM ': 'DemoTestCOE'},
  {TEAM: 'BCC'},
  {Team: 'DemoTestCOE','Customer Code': 'DJLFKASJF',Owner: 'Vande Mataram',Environment: 'Prod',Region: 'EU',Application: 'Ui-Path',OS: 'Windows'},
  {Application: 'MGMT','Customer Code': 'DJLFKASJF', os: 'Windows','Owner ': 'Vande Mataram', Region: 'East US 2',Team: 'DemoTestCOE',Environment: 'MGMT'  },
  {Application: 'PIER',Owner: 'Govindarajulu Balaji',OS: 'Windows',Region: 'DemoTestCOE', Environment: 'QA'}  
]

und die unten gezeigte Bedingungszeichenfolge..

let condition =
  '"Owner": "Vande Mataram" AND ("Application": "APIM" AND "Customer Code": "DJLFKASJF") OR ("Owner": "Vande Mataram" AND "Customer Code": "DJLFKASJF") OR "Owner": "Vande Mataram"'

Kein Glück mit dem Internet ... Wie man das implementiert, kann ich nicht auf SQL Server übertragen, da es in Javascript erfolgen muss.

Ich habe online gesucht, um die Bedingungszeichenfolge in ein Array aufzuteilen, das nach Operatoren (UND/ODER) aufgeteilt ist, und habe nacheinander im JSON-Datenobjekt gesucht, aber die Bedingungszeichenfolge ist für jede Anfrage unterschiedlich. Und arbeiten Sie daran, Operatoren (AND/OR) korrekt zu implementieren. Ich bin mir nicht sicher, ob das die beste Idee ist

Ich brauche Hilfe bei der Lösung dieses Problems, um jede Art von Bedingung zu erfüllen, die mit mehreren verschachtelten Klammern bereitgestellt wird.

Danke

P粉029327711
P粉029327711

Antworte allen(1)
P粉174151913

Data 只是一个对象数组,因此您可以使用 Array.filter

let Data = [
  {Application: 'APIM', Owner: 'Vande Mataram','Customer Code': 'DJLFKASJF',Environment: 'Dev',OS: 'Linux',Region: 'EU','TEAM ': 'DemoTestCOE'},
  {TEAM: 'BCC'},
  {Team: 'DemoTestCOE','Customer Code': 'DJLFKASJF',Owner: 'Vande Mataram',Environment: 'Prod',Region: 'EU',Application: 'Ui-Path',OS: 'Windows'},
  {Application: 'MGMT','Customer Code': 'DJLFKASJF', os: 'Windows','Owner ': 'Vande Mataram', Region: 'East US 2',Team: 'DemoTestCOE',Environment: 'MGMT'  },
  {Application: 'PIER',Owner: 'Govindarajulu Balaji',OS: 'Windows',Region: 'DemoTestCOE', Environment: 'QA'}  
]
// and the condition string like below..
/*
let condition =
  '"Owner": "Vande Mataram" AND ("Application": "APIM" AND "Customer Code": "DJLFKASJF") OR ("Owner": "Vande Mataram" AND "Customer Code": "DJLFKASJF") OR "Owner": "Vande Mataram"'
*/
console.log(Data.filter(item => {
    return item.Owner === 'Vande Mataram' 
    && (item.Application === "APIM" && item['Customer Code'] === "DJLFKASJF") 
    || (item.Owner === 'Vande Mataram' && item['Customer Code'] === "DJLFKASJF")
    || item.Owner === 'Vande Mataram';
}));
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage