モジュール json は、JSON 関連関数の Starlark モジュールです。
メンバー
decode
unknown json.decode(x, default=unbound)デコード関数には、必須の位置パラメータ(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 進整数としてエンコードされます。一部のデコーダでは、非常に大きな整数をデコードできない場合があります。
- 浮動小数点数は、数値が整数であっても、小数点または指数、またはその両方を使用してエンコードされます。有限でない浮動小数点値をエンコードすることはエラーです。
- 文字列値は、値を表す JSON 文字列リテラルとしてエンコードされます。ペアになっていないサロゲートはすべて U+FFFD に置き換えられます。
- 辞書は、キーの順序で JSON オブジェクトとしてエンコードされます。いずれかのキーが文字列でない場合、エラーになります。
- リストまたはタプルは JSON 配列としてエンコードされます。
- 構造体のような値は、フィールド名の順序で JSON オブジェクトとしてエンコードされます。
パラメータ
パラメータ | 説明 |
---|---|
x
|
必須 |
encode_indent
string json.encode_indent(x, *, prefix='', indent='\t')encode_indent 関数は
json.indent(json.encode(x), ...)
と同等です。フォーマット パラメータの説明については、indent
をご覧ください。
パラメータ
パラメータ | 説明 |
---|---|
x
|
必須 |
prefix
|
デフォルトは '' |
indent
|
デフォルトは '\t' |
インデント
string json.indent(s, *, prefix='', indent='\t')indent 関数は、有効な JSON エンコード文字列の折り返し形式を返します。各配列要素またはオブジェクト フィールドは新しい行に表示され、接頭辞文字列で始まり、その後にネストの深さに応じてインデント文字列の 1 つ以上のコピーが続きます。この関数は、1 つの必須の位置パラメータである JSON 文字列と、2 つのオプションのキーワードのみの文字列パラメータ(接頭辞とインデント)を受け入れます。これらは、各行の接頭辞とインデントの単位を指定します。入力が有効でない場合、関数は失敗するか、無効な出力を返す可能性があります。
パラメータ
パラメータ | 説明 |
---|---|
s
|
必須 |
prefix
|
デフォルトは '' |
indent
|
デフォルトは '\t' |