Я использую «jQuery Query Builder» (в пользовательском интерфейсе) для создания пользовательского объекта на основе пользовательских данных, и мне нужно передать этот объект в качестве входных данных «json-rules-engine» (в сервере) для генерацииРезультат основан на условиях в объекте.Но проблема в том, что Query Builder выдает выходные данные в другом формате, а обработчик правил принимает их в другом формате.
Я могу перебрать все узлы объекта и получить «ключи / значения»соответственно.Но я не могу использовать эти «значения» для создания нового объекта с другой структурой.
var object = {
"condition": "OR",
"rules": [{
"condition": "AND",
"rules": [{
"field": "name",
"operator": "equal",
"value": "romeo"
},
{
"field": "category",
"operator": "not_equal",
"value": "books"
}
]
},
{
"condition": "AND",
"rules": [{
"field": "price",
"operator": "greater_or_equal",
"value": 100
},
{
"field": "in_stock",
"operator": "equal",
"value": 1
}
]
}
]
};
function printObj(obj) {
for (var key in obj) {
var value = obj[key];
if (typeof value === 'object') {
printObj(value);
} else {
console.log(value);
}
}
}
printObj(object);
В настоящее время я могу перебирать все узлы и читать все «ключ / значение».Но мне нужно превратить этот объект в нечто вроде следующего:
Ожидаемый результат:
{
any: [{
all: [{
fact: 'name',
operator: 'equal',
value: "romeo"
}, {
fact: 'category',
operator: 'not_equal',
value: "books"
}]
}, {
all: [{
fact: 'price',
operator: 'greater_or_equal',
value: 100
}, {
fact: 'in_stock',
operator: 'equal',
value: 1
}]
}]
}