Google とスタック オーバーフローについて何時間もの調査を行った結果、次の 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'
}
};