使用jq从多维JSON数组中选择第n个元素

时间:2013-09-16 21:53:20

标签: json command-line data-manipulation jq

如何使用jq转换此数组数组:

[
  [
    "sequence",
    "int"
  ],
  [
    "time",
    "string"
  ],
  ...
]

进入一个包含每个子数组中第一个(0)元素的数组?意味着产生这样的输出:

[
    "sequence",
    "time",
    ...
]

我正在考虑使用reduce xx as $item (...),但我没有设法提出任何有用的东西。

3 个答案:

答案 0 :(得分:3)

您可以这样使用map过滤器:

jq 'map(.[0])'

答案 1 :(得分:0)

另一种选择是jq '[.[][0]]'

这与使用map(.[0])

的结果相同

答案 2 :(得分:0)

以下是使用 reduce

的解决方案
<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17" />

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.bill.myapplication1.MainActivity"
        android:label="@string/app_name"
        android:exported="true">>
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.bill.myapplication1.SecondActivity"
        android:label="@string/title_activity_second" >
    </activity>
</application>