如果我有一个JavaScript对象,例如:
var x = {foo: 42, bar: {fubar: true}}
那么我可以用
true
获得值var flag = x.bar.fubar
。我希望能够分离并存储路径"bar.fubar"
,然后对其进行动态评估。就像是:var paths = ["bar.fubar", ...];
...
var flag = evalPath( x, paths[0] );
显然,我可以为基本的路径表达式语法编写一个简单的解析器和评估器。但是,根据DRY原理,我想知道是否已经存在现有的方法来执行内置于JavaScript的
evalPath
之类的事情,还是可以完成此工作的小型库?我还期望将来在路径表达式中需要数组索引。更新为了明确起见,我不是在请求代码示例-我的问题是是否可以重用现有代码(内置代码或库)。无论如何,感谢下面的贡献者对代码示例的建议!请注意,它们都不处理数组索引要求。
最佳答案
快速搜索时,我遇到了JSONPath。完全没有使用它,但看起来它可能会做您想要的事情。
用法示例:
var x = {foo: 42, bar: {fubar: true}}
var res1 = jsonPath(x, "$.bar.fubar"); // Array containing fubar's value
关于javascript - 在Java中评估类路径表达式的简单方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2297103/