jsonextract

jsonextractコマンドを使用して、JSON形式データからJSONパスを使用して既存のフィールドの抜粋を取得します。このコマンドは、結果の抜粋を仮想フィールドに取得します。

ノート

jsonextractコマンドは、「元のログ・コンテンツ」フィールドでは操作できません。指定しない場合、デフォルト・フィールドはMessageです。抽出されたフィールドには、stringnumberまたはlistデータ型があります。

jsonextractは、大量のテキストから値を抽出したり、多数のログ・レコードを処理するためのものではありません。このようなユースケースには、JSONタイプ・パーサーおよびログ・ソースを使用します。

構文

jsonextract field = <field_to_parse> <new_field_name> = <jsonPath>

パラメータ

次の表に、このコマンドで使用されるパラメータとその説明を示します。

パラメータ 説明

field_to_parse

Jsonパスを使用して解析する必要がある既存のフィールドを指定します。

new_field_name

既存のフィールドの抜粋を取得する必要がある仮想フィールドを指定します。

jsonPath

仮想フィールドの情報を取得できるJsonパスを指定します。

JSONパス式はJSON構造を参照します。Jsonパスのルート・メンバー・オブジェクトは、オブジェクトか配列かに関係なく、$と呼ばれます。

Jsonパス式では、$.store.book[0].titleのようにドット表記または$['store']['book'][0]['title']のようにカッコ表記を使用できます。Jsonパスの詳細は、JsonPath式を参照してください。

次の例では、jsonextractコマンドを使用してJsonの最初のブックのタイトルを検索します。

* | jsonextract field = Store title = '$.store.book[0].title'

値の抽出元のログの例:

{
  "store":{
    "book":[
      {"category":"fiction","author":"James Patterson","title":"Fifty Fifty","price":12.99,"count":17},
      {"category":"fiction","author":"Chris Bohjalian","title":"The Flight Attendant","price":14.99,"count":10},
      {"category":"fiction","author":"John Grisham","title":"The Guardians","price":10.99}
      ],
    "bicycle":{"color":"blue","price":27.25}
    },
  "expensive":12
}