Mô-đun json là một mô-đun Starlark gồm các hàm liên quan đến JSON.
Hội viên
giải mã
unknown json.decode(x, default=unbound)
Hàm giải mã có một tham số vị trí bắt buộc: chuỗi JSON.
Hàm này trả về giá trị Starlark mà chuỗi biểu thị.
"null", "true" và "false" được phân tích cú pháp thành None, True và False.
- Các số được phân tích cú pháp thành số nguyên hoặc số thực nếu chứa dấu thập phân hoặc số mũ. Mặc dù JSON không có cú pháp cho các giá trị không hữu hạn, nhưng các giá trị rất lớn có thể được giải mã thành vô cùng.
- đối tượng JSON được phân tích cú pháp thành từ điển Starlark mới không bị đóng băng. Nếu cùng một chuỗi khoá xuất hiện nhiều lần trong đối tượng, thì giá trị cuối cùng cho khoá sẽ được giữ lại.
- mảng JSON được phân tích cú pháp thành danh sách Starlark mới không bị đóng băng.
Nếu
x không phải là mã hoá JSON hợp lệ và tham số
default không bắt buộc được chỉ định (bao gồm cả việc chỉ định là
None), thì hàm này sẽ trả về giá trị
default.
Nếu
x không phải là mã hoá JSON hợp lệ và tham số
default không bắt buộc
không được chỉ định, thì hàm này sẽ không thành công.
Thông số
| Tham số |
Mô tả |
x
|
bắt buộc
Chuỗi JSON cần giải mã.
|
default
|
giá trị mặc định là unbound
Nếu được chỉ định, giá trị sẽ trả về khi không thể giải mã x.
|
mã hoá
string json.encode(x)
Hàm mã hoá chấp nhận một đối số vị trí bắt buộc, đối số này sẽ chuyển đổi thành JSON theo các trường hợp:
- None, True và False lần lượt được chuyển đổi thành "null", "true" và "false".
- Số nguyên (bất kể lớn đến đâu) đều được mã hoá thành số nguyên thập phân. Một số bộ giải mã có thể không giải mã được số nguyên rất lớn.
- Số thực được mã hoá bằng dấu thập phân hoặc số mũ hoặc cả hai, ngay cả khi giá trị số của số thực đó là số nguyên. Việc mã hoá giá trị dấu phẩy động không hữu hạn sẽ gây ra lỗi.
- Giá trị chuỗi được mã hoá dưới dạng ký tự chuỗi JSON biểu thị giá trị. Mỗi surrogate không được ghép nối sẽ được thay thế bằng U+FFFD.
- Từ điển được mã hoá dưới dạng đối tượng JSON theo thứ tự khoá. Nếu bất kỳ khoá nào không phải là chuỗi, thì sẽ xảy ra lỗi.
- Danh sách hoặc bộ dữ liệu được mã hoá dưới dạng mảng JSON.
- Giá trị giống cấu trúc được mã hoá dưới dạng đối tượng JSON theo thứ tự tên trường.
Loại do ứng dụng xác định có thể xác định mã hoá JSON riêng.
Việc mã hoá bất kỳ giá trị nào khác sẽ gây ra lỗi.
Thông số
encode_indent
string json.encode_indent(x, *, prefix='', indent='\t')
Hàm encode_indent tương đương với
json.indent(json.encode(x), ...). Hãy xem
indent để biết nội dung mô tả về các tham số định dạng.
Thông số
| Tham số |
Mô tả |
x
|
bắt buộc
|
prefix
|
giá trị mặc định là ''
|
indent
|
giá trị mặc định là '\t'
|
thụt lề
string json.indent(s, *, prefix='', indent='\t')
Hàm thụt lề trả về dạng thụt lề của chuỗi được mã hoá JSON hợp lệ.
Mỗi phần tử mảng hoặc trường đối tượng xuất hiện trên một dòng mới, bắt đầu bằng chuỗi tiền tố, sau đó là một hoặc nhiều bản sao của chuỗi thụt lề, tuỳ theo độ sâu lồng nhau.
Hàm này chấp nhận một tham số vị trí bắt buộc (chuỗi JSON) và 2 tham số chuỗi chỉ từ khoá không bắt buộc (tiền tố và thụt lề) chỉ định tiền tố của mỗi dòng mới và đơn vị thụt lề.
Nếu dữ liệu đầu vào không hợp lệ, thì hàm có thể không thành công hoặc trả về kết quả không hợp lệ.
Thông số
| Tham số |
Mô tả |
s
|
bắt buộc
|
prefix
|
giá trị mặc định là ''
|
indent
|
giá trị mặc định là '\t'
|