2017-03-17 60 views
1

鉴于以下JSON:如何在JMESpath中做“对象投影”过滤器,或者如何过滤列表?

{ 
    "apps": { 
    "foo": { 
     "version": "1" 
    }, 
    "bar": { 
     "version": "2" 
    } 
    } 
} 

我想获得其中有一个版本的应用程序的数量2. 的物体投影

apps.*.version 

给出了一个列表,

[ 
    "1", 
    "2" 
] 

但是如何过滤那个列表? 我没有在教程中找到任何示例(因为没有属性可以像[?version!='']那样过滤,尽管它似乎是一个非常基本的用例

回答

2

我找到了一个解决方案,使用此语法可以做到这一点

apps.*.version | [[email protected]=='2'] 
+0

我觉得应该有星号之前的点,没有'jmespath.search?( “应用*版|。[@ == '2'?]”,数据)' –

+0

@ MaxMurphy:谢谢,我已经省略了这个点 – user140547