Recursion ODataJSON查询生成器转换。递归?
我目前正在为Odata构建一个查询生成器 我从这个项目中得到了灵感: 我现在确实有了查询的json解释 但是我用来处理odata的框架有不同的格式 我的问题是查询可以无限嵌套 我需要这种输出:Recursion ODataJSON查询生成器转换。递归?,recursion,odata,breeze,Recursion,Odata,Breeze,我目前正在为Odata构建一个查询生成器 我从这个项目中得到了灵感: 我现在确实有了查询的json解释 但是我用来处理odata的框架有不同的格式 我的问题是查询可以无限嵌套 我需要这种输出: { or: [ age: { ">": 40 }, and: [ { lastName: { startsWith: 'A'}}, { hireDate: { '<': new Date(2010, 0, 1) }} ] ] } 我需要
{ or: [
age: { ">": 40 },
and: [
{ lastName: { startsWith: 'A'}},
{ hireDate: { '<': new Date(2010, 0, 1) }}
]
]
}
我需要一些建议来解决这个问题
因此,如果你有一个链接或一些想法,可以帮助我
我将不胜感激
function convertQueryBuilderToBreeze(filtre) {
var jsonObject = {};
if (filtre.rules && filtre.operator) {
jsonObject[filtre.operator] = filtre.rules.map(function (rule) {
if (rule.condition) {
var condition = {};
var obj = {};
obj[rule.condition] = rule.data;
condition[rule.field] = obj;
return condition;
} else if (rule.group) {
return convertQueryBuilderToBreeze(rule.group);
}
});
}
return jsonObject;
}
function convertQueryBuilderToBreeze(filtre) {
var jsonObject = {};
if (filtre.rules && filtre.operator) {
jsonObject[filtre.operator] = filtre.rules.map(function (rule) {
if (rule.condition) {
var condition = {};
var obj = {};
obj[rule.condition] = rule.data;
condition[rule.field] = obj;
return condition;
} else if (rule.group) {
return convertQueryBuilderToBreeze(rule.group);
}
});
}
return jsonObject;
}