JSON

Laporkan masalah Lihat sumber

JSON modul adalah modul Starlark yang berisi fungsi terkait JSON.

Anggota

dekode

unknown json.decode(x, default=unbound)

Fungsi dekode memiliki satu parameter posisi yang diperlukan: string JSON. Metode ini menampilkan nilai Starlark yang ditunjukkan oleh string tersebut.
  • "null", "true", dan "false" diurai sebagai None, True, dan False.
  • Bilangan diurai sebagai int, atau sebagai float jika berisi titik desimal atau eksponen. Meskipun JSON tidak memiliki sintaksis untuk nilai yang tidak terbatas, nilai yang sangat besar dapat didekode sebagai tak terhingga.
  • objek JSON diuraikan sebagai dikte Starlark baru yang tidak dibekukan. Jika string kunci yang sama muncul lebih dari sekali dalam objek, nilai terakhir untuk kunci tersebut akan disimpan.
  • array JSON diuraikan sebagai daftar Starlark baru yang tidak dibekukan.
Jika x bukan encoding JSON yang valid dan parameter default opsional telah ditentukan (termasuk ditentukan sebagai None), fungsi ini akan menampilkan nilai default. Jika x bukan encoding JSON yang valid dan parameter default opsional tidak ditentukan, fungsi ini akan gagal.

Parameter

Parameter Deskripsi
x diperlukan
string JSON untuk mendekode.
default defaultnya adalah unbound
Jika ditentukan, nilai yang akan ditampilkan jika x tidak dapat didekode.

encode

string json.encode(x)

Fungsi encoding menerima satu argumen posisi yang diperlukan, yang dikonversi ke JSON berdasarkan kasus:

  • None, True, dan False masing-masing dikonversi menjadi 'null', 'true', dan 'false'.
  • Int, berapa pun besarnya, dienkode sebagai bilangan bulat desimal. Beberapa decoder mungkin tidak dapat mendekode bilangan bulat yang sangat besar.
  • {i>Float<i} dienkode menggunakan titik desimal, eksponen, atau keduanya, meskipun nilai numeriknya adalah bilangan bulat. Ini adalah error untuk mengenkode nilai floating point yang tidak terbatas.
  • Nilai string dienkode sebagai literal string JSON yang menunjukkan nilai tersebut. Setiap surrogate yang tidak berpasangan akan diganti dengan U+FFFD.
  • Dikte dienkode sebagai objek JSON, dalam urutan kunci. Akan terjadi error jika kunci apa pun bukan berupa string.
  • Daftar atau tuple dienkode sebagai array JSON.
  • Nilai mirip struct dienkode sebagai objek JSON, dalam urutan nama kolom.
Jenis yang ditentukan aplikasi dapat menentukan encoding JSON-nya sendiri. Mengenkode nilai lainnya akan menghasilkan error.

Parameter

Parameter Deskripsi
x wajib

encode_indent

string json.encode_indent(x, *, prefix='', indent='\t')

Fungsi encode_indent setara dengan json.indent(json.encode(x), ...). Lihat indent untuk deskripsi parameter pemformatan.

Parameter

Parameter Deskripsi
x wajib
prefix default-nya adalah ''
indent default-nya adalah '\t'

indentasi

string json.indent(s, *, prefix='', indent='\t')

Fungsi indentasi menampilkan bentuk indentasi dari string berenkode JSON yang valid. Setiap elemen array atau kolom objek akan muncul pada baris baru, dimulai dengan string awalan diikuti dengan satu atau beberapa salinan string indentasi, sesuai dengan kedalaman tingkatannya. Fungsi ini menerima satu parameter posisi yang diperlukan, string JSON, dan dua parameter string khusus kata kunci opsional, awalan dan indentasi, yang menentukan awalan setiap baris baru, serta unit indentasi. Jika input tidak valid, fungsi mungkin akan gagal atau menampilkan output yang tidak valid.

Parameter

Parameter Deskripsi
s wajib
prefix default-nya adalah ''
indent default-nya adalah '\t'