From ecd9c74c9986fa010be95f18d76a4768a16b7010 Mon Sep 17 00:00:00 2001 From: Jakub Vrana Date: Tue, 3 Feb 2026 10:41:01 +0100 Subject: [PATCH] Unify JSON pretty print --- adminer/include/html.inc.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/adminer/include/html.inc.php b/adminer/include/html.inc.php index d8b0cfc6..496cfd9e 100644 --- a/adminer/include/html.inc.php +++ b/adminer/include/html.inc.php @@ -216,9 +216,12 @@ function input(array $field, $value, ?string $function, ?bool $autofocus = false $name = h(bracket_escape($field["field"])); echo ""; if (is_array($value) && !$function) { - $value = json_encode($value, 128 | 64 | 256); // 128 - JSON_PRETTY_PRINT, 64 - JSON_UNESCAPED_SLASHES, 256 - JSON_UNESCAPED_UNICODE available since PHP 5.4 $function = "json"; } + $json = ($function == "json" || preg_match('~^jsonb?$~', $field["type"])); + if ($json && $value != '' && (JUSH != "pgsql" || $field["type"] != "json")) { + $value = json_encode(is_array($value) ? $value : json_decode($value), 128 | 64 | 256); // 128 - JSON_PRETTY_PRINT, 64 - JSON_UNESCAPED_SLASHES, 256 - JSON_UNESCAPED_UNICODE available since PHP 5.4 + } $reset = (JUSH == "mssql" && $field["auto_increment"]); if ($reset && !$_POST["save"]) { $function = null; @@ -253,11 +256,8 @@ function input(array $field, $value, ?string $function, ?bool $autofocus = false echo enum_input("checkbox", $attrs, $field, (is_string($value) ? explode(",", $value) : $value)); } elseif (is_blob($field) && ini_bool("file_uploads")) { echo ""; - } elseif ($function == "json" || preg_match('~^jsonb?$~', $field["type"])) { - echo "" . h($value == '' || (JUSH == "pgsql" && $field["type"] == "json") - ? $value - : json_encode(json_decode($value), JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)) - . ''; + } elseif ($json) { + echo "" . h($value) . ''; } elseif (($text = preg_match('~text|lob|memo~i', $field["type"])) || preg_match("~\n~", $value)) { if ($text && JUSH != "sqlite") { $attrs .= " cols='50' rows='12'";