コンテンツにスキップ

res2dict

APIレスポンスを差分比較に必要なdictへ変換します。

json

JSONレスポンスをdictに変換します。

Config

Definitions

Key Type Description Example Default
force (bool) 変換する必要がないケース でも強制的に変換するか true false

force 変換する必要がないケース

以下のいずれかに一致する場合

  • レスポンスのtypeがjsonではない
  • 既にアドオンでdict型に変換済みの場合

Examples

レスポンスがJSONの場合 dictに変換する
  res2dict:
    - name: json
変換する必要がないケースでも強制的に変換する
  res2dict:
    - name: json
      config:
        force: true

xml

XMLレスポンスをdictに変換します。

Config

Definitions

Key Type Description Example Default
force (bool) 変換する必要がないケース でも強制的に変換するか true false

force 変換する必要がないケース

以下のいずれかに一致する場合

  • レスポンスのtypeがxmlではない
  • 既にアドオンでdict型に変換済みの場合

Examples

レスポンスがXMLの場合 dictに変換する
  res2dict:
    - name: xml
変換する必要がないケースでも強制的に変換する
  res2dict:
    - name: xml
      config:
        force: true

html

HTMLレスポンスをdictに変換します。

Config

Definitions

Key Type Description Example Default
force (bool) 変換する必要がないケース でも強制的に変換するか true false

force 変換する必要がないケース

以下のいずれかに一致する場合

  • レスポンスのtypeがhtmlではない
  • 既にアドオンでdict型に変換済みの場合

Examples

レスポンスがHTMLの場合 dictに変換する
  res2dict:
    - name: html
変換する必要がないケースでも強制的に変換する
  res2dict:
    - name: html
      config:
        force: true

block

ブロック単位(空行で区切られた)のレスポンスをdictに変換します。
ブロック単位の定義は下記セクションを参照してください。

Config

Definitions

Key Type Description Example Default
header_regexp string ヘッダ行のキーを抽出する正規表現
^\d+)(.+)
record_regexp string レコード行のkey/valueを抽出する正規表現
([^ ]+) (.+)
force (bool) 変換する必要がないケース でも強制的に変換するか true false

header_regexpの正規表現について

グループを1つ定義してください

record_regexpの正規表現について

グループを2つ定義してください. 1つ目がkey 2つ目がvalueになります

force 変換する必要がないケース

以下のいずれかに一致する場合

  • 既にアドオンでdict型に変換済みの場合

Examples

INIファイルっぽい形式に変換する
  res2dict:
    - name: block
      config:
        header_regexp: '\[(.+)\]'
        record_regexp: '([^:]+): (.+)'

ブロック単位のルール

  • 1つ以上の空行で区切られた単位をブロック単位とする
  • ブロックは1行のヘッダと1行以上のレコードで構成される

パターン1

変換対象
[Mimizou]
ID: 001
Name: Mimizou Aikawa

[Tatsuwo(GOD)]
ID: 002
Name: Tatsuwo Aikawa
configの設定
header_regexp: '\[(.+)\]'
record_regexp: '([^:]+): (.+)'
変換後
{
  "Mimizou": {
    "ID": "001",
    "Name": "Mimizou Aikawa"
  },
  "Tatsuwo(GOD)": {
    "ID": "002",
    "Name": "Tatsuwo Aikawa"
  }
}

パターン2

変換対象
1)Mimizou
ID 001
Name Mimizou Aikawa

12)Tatsuwo(GOD)
ID 002
Name Tatsuwo Aikawa
configの設定
header_regexp: '^\d+\)(.+)'
record_regexp: '([^ ]+) (.+)'
変換後
{
  "Mimizou": {
    "ID": "001",
    "Name": "Mimizou Aikawa"
  },
  "Tatsuwo(GOD)": {
    "ID": "002",
    "Name": "Tatsuwo Aikawa"
  }
}