El módulo JSON es un módulo de Starlark de funciones relacionadas con JSON.
Miembros
decode
unknown json.decode(x, default=unbound)La función de decodificación tiene un parámetro posicional obligatorio: una cadena JSON. Muestra el valor de Starlark que indica la cadena.
"null"
,"true"
y"false"
se analizan comoNone
,True
yFalse
.- Los números se analizan como números enteros o números de punto flotante si contienen un punto decimal o un exponente. Aunque JSON no tiene sintaxis para valores no finitos, los valores muy grandes se pueden decodificar como infinito.
- un objeto JSON se analiza como un nuevo diccionario de Starlark sin congelar. Si la misma string de clave aparece más de una vez en el objeto, se conserva el último valor de la clave.
- un array JSON se analiza como una nueva lista de Starlark actualizada.
x
no es una codificación JSON válida y se especifica el parámetro opcional default
(incluido el especificado como None
), esta función muestra el valor default
.
Si x
no es una codificación JSON válida y no se especifica el parámetro opcional default
, esta función fallará.
Parámetros
Parámetro | Descripción |
---|---|
x
|
string;
obligatorio Cadena JSON para decodificar. |
default
|
el valor predeterminado es unbound Si se especifica, el valor que se muestra cuando no se puede decodificar x .
|
encode
string json.encode(x)
La función de codificación acepta un argumento posicional obligatorio, que convierte a JSON según los casos:
- None, True y False se convierten en 'null', 'true' y 'false', respectivamente.
- Un int, sin importar qué tan grande sea, se codifica como un número entero decimal. Es posible que algunos decodificadores no puedan decodificar números enteros muy grandes.
- Un número de punto flotante se codifica con un punto decimal, un exponente o ambos, incluso si su valor numérico es un número entero. La codificación de un valor de punto flotante no finito es un error.
- Un valor de string se codifica como un literal de string JSON que denota el valor. Cada subrogado desvinculado se reemplaza por U+FFFD.
- Un dict se codifica como un objeto JSON, en orden clave. Es un error si alguna clave no es una string.
- Una lista o tupla se codifica como un array JSON.
- Un valor similar a una struct se codifica como un objeto JSON, en el orden de los nombres de campo.
Parámetros
Parámetro | Descripción |
---|---|
x
|
obligatorio |
encode_indent
string json.encode_indent(x, *, prefix='', indent='\t')La función encode_indent es equivalente a
json.indent(json.encode(x), ...)
. Consulta indent
para ver la descripción de los parámetros de formato.
Parámetros
Parámetro | Descripción |
---|---|
x
|
obligatorio |
prefix
|
string;
el valor predeterminado es '' |
indent
|
string;
el valor predeterminado es '\t' |
sangría
string json.indent(s, *, prefix='', indent='\t')La función de sangría muestra el formato con sangría de una string válida codificada en JSON. Cada elemento o campo de objeto del array aparece en una línea nueva, que comienza con la cadena de prefijo seguida de una o más copias de la cadena de sangría, según su profundidad de anidación. La función acepta un parámetro posicional obligatorio, la cadena JSON, y dos parámetros opcionales de cadena solo de palabra clave: prefijo y sangría, que especifican un prefijo para cada línea nueva y la unidad de sangría. Si la entrada no es válida, la función puede fallar o mostrar un resultado no válido.
Parámetros
Parámetro | Descripción |
---|---|
s
|
string;
obligatorio |
prefix
|
string;
el valor predeterminado es '' |
indent
|
string;
el valor predeterminado es '\t' |