json

<ph type="x-smartling-placeholder"></ph> 問題を報告 ソースを表示 ナイトリー · 7.3 · 7.2 · 7.1 · 7.0 · 6.5

モジュール json は、JSON 関連の関数の Starlark モジュールです。

メンバー

decode

unknown json.decode(x, default=unbound)

デコード関数には、必須の位置パラメータ(JSON 文字列)が 1 つあります。 文字列が示す Starlark 値を返します。 <ph type="x-smartling-placeholder">
    </ph>
  • "null""true""false" は、NoneTrueFalse として解析されます。
  • 数値は、整数として解析されます。小数点または指数が含まれる場合は浮動小数点数として解析されます。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 オブジェクトとしてエンコードされます。
で確認できます。 アプリケーション定義型では、独自の 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')

インデント関数は、インデントされた有効な JSON エンコード文字列を返します。 各配列要素またはオブジェクト フィールドは新しい行に表示されます。接頭辞文字列で始まり、その後にネストの深さに応じてインデント文字列の 1 つ以上のコピーが続きます。 この関数は、必須の位置パラメータの 1 つである JSON 文字列を受け入れます。 また、接頭辞とインデントという 2 つの省略可能なキーワード専用の文字列パラメータです。 を使用します。 入力が有効でない場合、関数は失敗するか、無効な出力を返すことがあります。

パラメータ

パラメータ 説明
s 必須
prefix デフォルトは ''
indent デフォルトは '\t'