如何通过JSON键值进行过滤,其中键嵌套在不同的深度?

krugob8w  于 2023-07-01  发布在  其他
关注(0)|答案(1)|浏览(136)

我有一个很大的JSON响应,我只需要更新某些字段。想要过滤响应,但是我感兴趣的键/值对嵌套在不同的级别上。我尝试使用jsonpath ..符号来查找它。

* eval var testcaseArray = response.collection.item.filter(o => o..name.includes(/^(RD-T|RES-T)/));

但是第二个省略号不被识别为有效的JavaScript语法。

org.graalvm.polyglot.PolyglotException: SyntaxError: Unnamed:1:59 Expected ident but found .
var testcaseArray = response.collection.item.filter(o => o..name.includes(/^(RD-T|RES-T)/))
icomxhvb

icomxhvb1#

不幸的是,JSON“更新”操作需要您显式地知道键和层次结构。JsonPath的东西,如*..不会工作。
您可以尝试在JSON上使用基于强制正则表达式的find-and-replace,然后将其重新转换为JSON,但我不建议这样做。
我认为可以递归所有的JSON键值对并做到这一点,让我看看我是否能弄清楚这一点并在稍后更新。

相关问题