Pular para o conteúdo principal

Converter uma string JSON em um valor Lua (json.decode)

Declaração

valor, mensagem_de_erro = json.decode(texto_JSON)

Parâmetro

  • texto JSON
    Texto; texto JSON a ser convertido em uma tabela.

Valores de retorno

  • valor
    Tabela, texto, número, booleano, json.null ou nil; quando a conversão é bem-sucedida, retorna um valor Lua correspondente à estrutura da string JSON; caso contrário, retorna nil.
  • mensagem de erro
    Texto ou nil; quando a conversão falha e valor é nil, este valor de retorno contém a mensagem de erro correspondente.

Descrição

Converte um texto JSON no valor de dados correspondente no Lua.
Esta função pode ser usada no XUI.

Exemplo

print(json.decode('true'))
print(json.decode('17'))
print(json.decode('"哈哈"'))
print(json.decode('null'))
print(json.decode(''))
print(table.deep_dump(json.decode('{}')))
print(table.deep_dump(json.decode('{"name":"alice","hello":"world"}')))
print(table.deep_dump(json.decode('[]')))
print(table.deep_dump(json.decode('[1, 2, 3, "foo"]')))
--
sys.alert(print.out())

Nota: o código acima usa as funções table.deep_dump, print.out e sys.alert, que não pertencem a este capítulo.

-- usa json.decode para restaurar escapes Unicode no formato \uXXXX para texto
sys.alert(json.decode([["\u4f60\u597d"]])) -- saída: \u4f60\u597d (caracteres chineses decodificados)

Nota: o código acima usa a função sys.alert, que não pertence a este capítulo.