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.