我有一个很大的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)/))
1条答案
按热度按时间icomxhvb1#
不幸的是,JSON“更新”操作需要您显式地知道键和层次结构。JsonPath的东西,如
*
和..
不会工作。您可以尝试在JSON上使用基于强制正则表达式的find-and-replace,然后将其重新转换为JSON,但我不建议这样做。
我认为可以递归所有的JSON键值对并做到这一点,让我看看我是否能弄清楚这一点并在稍后更新。