コンテンツにスキップ

res2dict

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

json

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

Config

Definitions

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

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

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

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

Examples

レスポンスがJSONの場合 dictに変換する

yaml res2dict: - name: json

変換する必要がないケースでも強制的に変換する

yaml 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に変換する

yaml res2dict: - name: xml

変換する必要がないケースでも強制的に変換する

yaml 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に変換する

yaml res2dict: - name: html

変換する必要がないケースでも強制的に変換する

yaml 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ファイルっぽい形式に変換する

yaml 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" } }