モジュール json は、JSON 関連関数の Starlark モジュールです。
メンバー
decode
unknown json.decode(x, default=unbound)
decode 関数には、JSON 文字列という 1 つの必須の位置パラメータがあります。
この関数は、文字列が示す Starlark 値を返します。
"null"、"true"、"false" は、それぞれ None、True、False として解析されます。
- 数値は int として解析されます。小数点または指数が含まれている場合は float として解析されます。JSON には非有限値の構文はありませんが、非常に大きな値は無限大としてデコードされることがあります。
- JSON オブジェクトは、新しいフリーズされていない Starlark 辞書として解析されます。同じキー文字列がオブジェクト内で複数回出現する場合は、そのキーの最後の値が保持されます。
- JSON 配列は、新しいフリーズされていない Starlark リストとして解析されます。
x が有効な JSON エンコードではなく、オプションの
default パラメータが指定されている場合(
None として指定されている場合を含む)、この関数は
default 値を返します。
x が有効な JSON エンコードではなく、オプションの
default パラメータが指定されていない場合、この関数は失敗します。
パラメータ
| パラメータ |
説明 |
x
|
必須
デコードする JSON 文字列。
|
default
|
デフォルトは unbound
指定した場合、x をデコードできないときに返す値。
|
encode
string json.encode(x)
encode 関数は、1 つの必須の位置引数を受け取り、ケースごとに JSON に変換します。
- None、True、False は、それぞれ 'null'、'true'、'false' に変換されます。
- int は、どれだけ大きくても 10 進整数としてエンコードされます。デコーダによっては、非常に大きな整数をデコードできない場合があります。
- float は、数値が整数であっても、小数点または指数、あるいはその両方を使用してエンコードされます。非有限の浮動小数点値をエンコードするとエラーになります。
- 文字列値は、値を表す JSON 文字列リテラルとしてエンコードされます。 ペアになっていないサロゲートは U+FFFD に置き換えられます。
- 辞書は、キーの順序で JSON オブジェクトとしてエンコードされます。 キーが文字列でない場合はエラーになります。
- リストまたはタプルは、JSON 配列としてエンコードされます。
- 構造体のような値は、フィールド名の順序で JSON オブジェクトとしてエンコードされます。
アプリケーション定義型は、独自の JSON エンコードを定義できます。
他の値をエンコードするとエラーになります。
パラメータ
encode_indent
string json.encode_indent(x, *, prefix='', indent='\t')
encode_indent 関数は、
json.indent(json.encode(x), ...) と同等です。書式設定パラメータの説明については、
indent をご覧ください。
パラメータ
| パラメータ |
説明 |
x
|
必須
|
prefix
|
デフォルトは ''
|
indent
|
デフォルトは '\t'
|
indent
string json.indent(s, *, prefix='', indent='\t')
indent 関数は、有効な JSON エンコード文字列のインデントされた形式を返します。各配列要素またはオブジェクト フィールドは、ネストの深さに応じて、接頭辞文字列と 1 つ以上のインデント文字列のコピーで始まる新しい行に表示されます。この関数は、1 つの必須の位置パラメータ(JSON 文字列)と、2 つのオプションのキーワード専用文字列パラメータ(prefix と indent)を受け取ります。これらのパラメータは、各新しい行の接頭辞とインデントの単位を指定します。
入力が無効な場合、関数が失敗するか、無効な出力が返されることがあります。
パラメータ
| パラメータ |
説明 |
s
|
必須
|
prefix
|
デフォルトは ''
|
indent
|
デフォルトは '\t'
|