Zum Inhalt

prettycjson: Lua cJSON Pretty Formatter

Installation

Wenn Sie das RPM-Repository-Abonnement noch nicht eingerichtet haben, melden Sie sich an. Dann können Sie mit den folgenden Schritten fortfahren.

CentOS/RHEL 7 oder 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

Um diese Lua-Bibliothek mit NGINX zu verwenden, stellen Sie sicher, dass nginx-module-lua installiert ist.

Dieses Dokument beschreibt lua-resty-prettycjson v1.6, das am 29. September 2016 veröffentlicht wurde.


lua-resty-prettycjson ist ein JSON Pretty Formatter für Lua cJSON.

Lua API

string function(dt, [lf = "\n", [id = "\t", [ac = " ", [ec = function]]]])

Formatiert die JSON-Ausgabe schön. Sie können lf (Zeilenumbruch) übergeben, wenn Sie einen anderen Zeilenumbruch als den Standard \n verwenden möchten. Wenn Sie mit etwas anderem als \t (einem Tabulator) einrücken möchten, können Sie das ebenfalls als Argument übergeben. Und wenn Sie etwas anderes als (einzelner Leerraum) nach den Doppelpunkten : (ac-Argument) in JSON haben möchten, können Sie das ebenfalls ändern, versuchen Sie zum Beispiel \n. Wenn Sie einen Encoder verwenden möchten, der nicht cJSON ist, übergeben Sie die Kodierungsfunktion als das 5. Argument (ec). Diese sollte alles als Eingabeparameter akzeptieren, und wenn es ein Problem mit der Kodierung gibt, sollte diese Funktion nil und eine Fehlermeldung zurückgeben, wie zum Beispiel:

nil, "Kann Funktion nicht serialisieren: Typ nicht unterstützt"

Für das Eingabeargument dt akzeptiert es alles, was cjson.encode akzeptiert (oder was auch immer die benutzerdefinierte Kodierungsfunktion akzeptiert).

Beispiel
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", {{{{{{}}},{{},{},{}},{},{}}}}}}}}
}))

Das wird ausgeben:

{
    "key6": [
        ""
    ],
    "key3": {
        "key3_1": "something",
        "key3_2": "something else"
    },
    "key7": [
        [
            [
                {
                    "1": [
                        [
                            [
                                [
                                    [
                                        {}
                                    ]
                                ],
                                [
                                    {},
                                    {},
                                    {}
                                ],
                                {},
                                {}
                            ]
                        ]
                    ],
                    "test": "value"
                }
            ]
        ]
    ],
    "key1": "data",
    "key5": [
        [
            ""
        ],
        [
            "",
            ""
        ],
        [
            {},
            {}
        ]
    ],
    "key2": 27,
    "key4": [
        "item1",
        "item2"
    ]
}

Änderungen

Die Änderungen jeder Version dieses Moduls sind in der Datei Changes.md dokumentiert.

GitHub

Zusätzliche Konfigurationstipps und Dokumentation für dieses Modul finden Sie im GitHub-Repository für nginx-module-prettycjson.