在对谷歌和堆栈溢出进行了数小时的研究之后,我得出结论,以下 JSON 结构正确地描述了布尔表达式。我不是非常热衷于算法,但是在英语(和/或 javascript)中,您将如何递归遍历树来重建表达式,因此,在此示例中,表达式将显示为:
13 或 14 或(18 和 20 和 19)
var booleanExpression = {
op : 'or',
left : {
op : 'or',
left: {
op : 'or',
left : {
op : 'literal',
value: '14'
},
right: {
op : 'and',
left : {
op : 'and',
left : {
op : 'literal',
value: '20'
},
right: {
op : 'literal',
value: '19'
}
},
right: {
op : 'literal',
value: '18'
}
}
}
},
right: {
op : 'literal',
value: '13'
}
};