prettycjson: Formatador JSON Bonito para Lua cJSON
Instalação
Se você ainda não configurou a assinatura do repositório RPM, inscreva-se. Depois, você pode prosseguir com os seguintes passos.
CentOS/RHEL 7 ou Amazon Linux 2
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install lua-resty-prettycjson
CentOS/RHEL 8+, Fedora Linux, Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install lua5.1-resty-prettycjson
Para usar esta biblioteca Lua com NGINX, certifique-se de que o nginx-module-lua esteja instalado.
Este documento descreve lua-resty-prettycjson v1.6 lançado em 29 de setembro de 2016.
lua-resty-prettycjson é um formatador JSON bonito para Lua cJSON.
API Lua
função string(dt, [lf = "\n", [id = "\t", [ac = " ", [ec = função]]]])
Formata de maneira bonita a saída JSON. Você pode passar lf (quebra de linha) se quiser usar uma quebra de linha diferente da padrão \n. Se você quiser indentar (argumento id) com algo diferente de \t (um tab), você pode passar isso como argumento também. E se você quiser ter algo diferente de (espaço simples) após os dois pontos : (argumento ac) no JSON, você pode mudar isso também, tente por exemplo \n. Se você gostaria de usar um codificador diferente de cJSON, passe a função de codificação como o 5º argumento (ec). Ela deve aceitar qualquer coisa como parâmetro de entrada, e se houver um problema com a codificação, essa função deve retornar nil e uma mensagem de erro, como:
nil, "Não é possível serializar a função: tipo não suportado"
Para o argumento de entrada dt, ele aceita qualquer coisa que cjson.encode aceita (ou o que a função de codificação personalizada aceita).
Exemplo
local pretty = require "resty.prettycjson"
print(pretty({
key1 = "data",
key2 = 27,
key3 = {
key3_1 = "algo",
key3_2 = "algo diferente"
},
key4 = {
"item1",
"item2"
},
key5 = {},
key5 = {{''}, {'',''}, {{},{}}},
key6 = { '' },
key7 = {{{{ teste = "valor", {{{{{{}}},{{},{},{}},{},{}}}}}}}}
}))
Isso irá gerar:
{
"key6": [
""
],
"key3": {
"key3_1": "algo",
"key3_2": "algo diferente"
},
"key7": [
[
[
{
"1": [
[
[
[
[
{}
]
],
[
{},
{},
{}
],
{},
{}
]
]
],
"teste": "valor"
}
]
]
],
"key1": "data",
"key5": [
[
""
],
[
"",
""
],
[
{},
{}
]
],
"key2": 27,
"key4": [
"item1",
"item2"
]
}
Mudanças
As mudanças de cada versão deste módulo estão registradas no arquivo Changes.md.
GitHub
Você pode encontrar dicas adicionais de configuração e documentação para este módulo no repositório GitHub para nginx-module-prettycjson.