@@ -166,11 +166,17 @@ public function asPositiveFloat(int $precision = 5, int $mode = PHP_ROUND_HALF_U
166166 * The value of $default is assumed to be a safe value.
167167 * If there is no value, you can also set the exception class $exc, which is called
168168 * instead of the default value; if true, the standard error class will be called.
169+ * (!) Is not suitable for producing a valid JSON string, as it escapes consecutive double quotes.
170+ * To get the original JSON string, you can use value(), and to convert it
171+ * to an array with escaped values, use asArray().
169172 *
170173 * Возвращает значение приведенное к типу `string`, если значение не существует - возвращает $default.
171174 * Предполагается, что значением $default является безопасное значение.
172175 * При отсутствии значения также можно задать класс исключения $exc, вызываемый вместо
173176 * дефолтного значения; при true будет вызван стандартный класс ошибки.
177+ * (!) Не подходит для получения валидной JSON-строки, так как экранирует двойные кавычки подряд.
178+ * Для получения оригинальной JSON-строки можно использовать value(),
179+ * а преобразованный в массив c экранированными значениями - asArray().
174180 */
175181 public function asString (string |null $ default = null , bool |string $ exc = false ): string |null
176182 {
@@ -238,7 +244,7 @@ public function asArray(array $default = [], bool|string $exc = false): array
238244 (\str_starts_with (\ltrim ($ this ->value ), '{ ' ) || \str_starts_with (\ltrim ($ this ->value ), '[ ' ))
239245 ) {
240246 try {
241- $ value = \json_decode (\trim ($ value ), true , JSON_THROW_ON_ERROR );
247+ $ value = \json_decode (\trim ($ value ), true , 512 , JSON_THROW_ON_ERROR );
242248 } catch (\JsonException ) {
243249 }
244250 if (!\is_array ($ value )) {
0 commit comments