Fix empty array check

This commit is contained in:
2024-07-04 13:16:04 -04:00
parent 5201e564ca
commit 1a37b009ea
2 changed files with 21 additions and 6 deletions

View File

@@ -34,14 +34,16 @@ class Parameters
$name => method_exists($document, 'toJson') ? $document->toJson($flags) : json_encode($document, $flags)
];
}
if (empty($document)) return [$name => json_encode($document, $flags)];
$key = array_key_first($document);
if (is_array($document[$key]) && method_exists($document[$key][array_key_first($document[$key])], 'toJson')) {
return [
$name => sprintf('{%s:[%s]}', json_encode($key, $flags),
implode(',', array_map(fn($it) => $it->toJson($flags), $document[$key])))
];
if (is_array($document[$key])) {
if (empty($document[$key])) return [$name => json_encode($document, $flags)];
if (method_exists($document[$key][array_key_first($document[$key])], 'toJson')) {
return [
$name => sprintf('{%s:[%s]}', json_encode($key, $flags),
implode(',', array_map(fn($it) => $it->toJson($flags), $document[$key])))
];
}
}
return [$name => json_encode($document, $flags)];
}