diff --git a/src/Dibi/Helpers.php b/src/Dibi/Helpers.php index 20cac485..0918b974 100644 --- a/src/Dibi/Helpers.php +++ b/src/Dibi/Helpers.php @@ -189,6 +189,7 @@ class Helpers 'TIME' => Type::DATETIME, // DATETIME, TIMESTAMP 'DATE' => Type::DATE, 'BOOL' => Type::BOOL, + 'JSON' => Type::JSON, ]; foreach ($patterns as $s => $val) { diff --git a/src/Dibi/Result.php b/src/Dibi/Result.php index 6f54543d..981e3a8f 100644 --- a/src/Dibi/Result.php +++ b/src/Dibi/Result.php @@ -495,6 +495,9 @@ class Result implements IDataSource } elseif ($type === Type::BINARY) { $row[$key] = $this->getResultDriver()->unescapeBinary($value); + + } elseif ($type === Type::JSON) { + $row[$key] = json_decode($value); } } } diff --git a/src/Dibi/Type.php b/src/Dibi/Type.php index 0d4240ad..26227eab 100644 --- a/src/Dibi/Type.php +++ b/src/Dibi/Type.php @@ -18,6 +18,7 @@ class Type public const TEXT = 's', // as 'string' BINARY = 'bin', + JSON = 'json', BOOL = 'b', INTEGER = 'i', FLOAT = 'f',