json
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Module 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: một 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 dưới dạng None
, True
và False
.
- Các số được phân tích cú pháp dưới dạng 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ã dưới dạng vô cực.
- một đối tượng JSON được phân tích cú pháp dưới dạng một từ điển Starlark mới chưa được cố định. 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 dưới dạng danh sách Starlark mới chưa cố định.
Nếu
x
không phải là một mã hoá JSON hợp lệ và bạn chỉ định tham số
default
không bắt buộc (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ột phương thức mã hoá JSON hợp lệ và bạn
không chỉ định tham số
default
không bắt buộc, thì hàm này sẽ không hoạt động.
Thông số
Thông số |
Mô tả |
x
|
string;
required
Chuỗi JSON cần giải mã.
|
default
|
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, hàm này sẽ chuyển đổi đối số đó 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".
- Một số nguyên, dù lớn đến đâu, cũng được mã hoá dưới dạng số nguyên thập phân. Một số bộ giải mã có thể không giải mã được cá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à một số nguyên. Việc mã hoá giá trị dấu phẩy động không hữu hạn là một lỗi.
- Giá trị chuỗi được mã hoá dưới dạng ký hiệu chuỗi JSON biểu thị giá trị. Mỗi surrogate không ghép cặp 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á từ vựng. Nếu có khoá không phải là chuỗi thì đó là lỗi.
- Danh sách hoặc bộ được mã hoá dưới dạng một 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.
Một loại do ứng dụng xác định có thể xác định phương thức mã hoá JSON riêng.
Mã hoá bất kỳ giá trị nào khác đều sẽ gây ra lỗi.
Thông số
Thông số |
Mô tả |
x
|
bắt buộc
|
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ố
Thông số |
Mô tả |
x
|
bắt buộc
|
prefix
|
string;
mặc định là ''
|
indent
|
string;
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 một chuỗi được mã hoá bằng 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ố, theo 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 của phần tử hoặc trường đó.
Hàm này chấp nhận một tham số vị trí bắt buộc (chuỗi JSON) và hai 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 đầu vào không hợp lệ, hàm có thể không hoạt động hoặc trả về đầu ra không hợp lệ.
Thông số
Thông số |
Mô tả |
s
|
string;
required
|
prefix
|
string;
mặc định là ''
|
indent
|
string;
mặc định là '\t'
|