prettycjson: Formateur JSON Pretty pour Lua cJSON
Installation
Si vous n'avez pas configuré l'abonnement au dépôt RPM, inscrivez-vous. Ensuite, vous pouvez procéder avec les étapes suivantes.
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
Pour utiliser cette bibliothèque Lua avec NGINX, assurez-vous que nginx-module-lua est installé.
Ce document décrit lua-resty-prettycjson v1.6 publié le 29 septembre 2016.
lua-resty-prettycjson est un formateur JSON Pretty pour Lua cJSON.
API Lua
string function(dt, [lf = "\n", [id = "\t", [ac = " ", [ec = function]]]])
Formate joliment la sortie JSON. Vous pouvez passer lf (saut de ligne) si vous souhaitez utiliser un saut de ligne différent de celui par défaut \n. Si vous souhaitez indenter (id argument) avec autre chose que \t (une tabulation), vous pouvez également passer cela comme arguments. Et si vous voulez avoir autre chose que (espace simple) après les deux-points : (ac argument) dans le JSON, vous pouvez le changer aussi, essayez par exemple \n. Si vous souhaitez utiliser un encodeur autre que cJSON, passez la fonction d'encodage comme le 5ème argument (ec). Elle doit accepter n'importe quoi comme paramètre d'entrée, et s'il y a un problème avec l'encodage, cette fonction doit retourner nil et un message d'erreur, tel que :
nil, "Cannot serialise function: type not supported"
Pour l'argument d'entrée dt, il accepte tout ce que cjson.encode accepte (ou tout ce que la fonction d'encodage personnalisée accepte).
Exemple
local pretty = require "resty.prettycjson"
print(pretty({
key1 = "data",
key2 = 27,
key3 = {
key3_1 = "something",
key3_2 = "something else"
},
key4 = {
"item1",
"item2"
},
key5 = {},
key5 = {{''}, {'',''}, {{},{}}},
key6 = { '' },
key7 = {{{{ test = "value", {{{{{{}}},{{},{},{}},{},{}}}}}}}}
}))
Cela produira :
{
"key6": [
""
],
"key3": {
"key3_1": "something",
"key3_2": "something else"
},
"key7": [
[
[
{
"1": [
[
[
[
[
{}
]
],
[
{},
{},
{}
],
{},
{}
]
]
],
"test": "value"
}
]
]
],
"key1": "data",
"key5": [
[
""
],
[
"",
""
],
[
{},
{}
]
],
"key2": 27,
"key4": [
"item1",
"item2"
]
}
Changements
Les changements de chaque version de ce module sont enregistrés dans le fichier Changes.md.
GitHub
Vous pouvez trouver des conseils de configuration supplémentaires et de la documentation pour ce module dans le dépôt GitHub pour nginx-module-prettycjson.