El módulo json es un módulo Starlark de funciones relacionadas con JSON.
Miembros
decode
unknown json.decode(x, default=unbound)
La función decode tiene un parámetro posicional obligatorio: una cadena JSON.
Muestra el valor de Starlark que indica la cadena.
"null", "true" y "false" se analizan como None, True y False.
- Los números se analizan como int o como un valor 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 no inmutable. Si la misma cadena 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 no inmutable.
Si
x no es una codificación JSON válida y se especifica el parámetro
default opcional (incluido como
None), esta función muestra el valor
default.
Si
x no es una codificación JSON válida y el parámetro
default opcional
no se especifica, esta función falla.
Parámetros
| Parámetro |
Descripción |
x
|
cadena;
obligatorio
Cadena JSON para decodificar.
|
default
|
el valor predeterminado es unbound
Si se especifica, el valor que se mostrará cuando no se pueda decodificar x.
|
encode
string json.encode(x)
La función encode acepta un argumento posicional obligatorio, que convierte a JSON por 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 valor de punto flotante se codifica con un punto decimal o un exponente, o ambos, incluso si su valor numérico es un número entero. Es un error codificar un valor de punto flotante no finito.
- Un valor de cadena se codifica como un literal de cadena JSON que indica el valor. Cada suplente no emparejado se reemplaza por U+FFFD.
- Un diccionario se codifica como un objeto JSON, en orden lexicográfico de claves. Es un error si alguna clave no es una cadena.
- Una lista o tupla se codifica como un array JSON.
- Un valor similar a una estructura se codifica como un objeto JSON, en orden de nombre de campo.
Un tipo definido por la aplicación puede definir su propia codificación JSON.
La codificación de cualquier otro valor genera un error.
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 obtener una descripción de los parámetros de formato.
Parámetros
| Parámetro |
Descripción |
x
|
obligatorio
|
prefix
|
cadena;
el valor predeterminado es ''
|
indent
|
cadena;
el valor predeterminado es '\t'
|
sangría
string json.indent(s, *, prefix='', indent='\t')
La función indent muestra la forma con sangría de una cadena codificada en JSON válida.
Cada elemento de array o campo de objeto aparece en una línea nueva, comenzando 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 de cadena opcionales solo de palabras clave, prefijo y sangría,
que especifican un prefijo de cada línea nueva y la unidad de sangría.
Si la entrada no es válida, es posible que la función falle o muestre un resultado no válido.
Parámetros
| Parámetro |
Descripción |
s
|
cadena;
obligatorio
|
prefix
|
cadena;
el valor predeterminado es ''
|
indent
|
cadena;
el valor predeterminado es '\t'
|