PHP.mk документација

json_validate

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.json-validate.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.json-validate.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
json_validate

Референца за `function.json-validate.php` со подобрена типографија и навигација.

function.json-validate.php

json_validate

(PHP 8 >= 8.3.0)

json_validateПроверува дали стринг содржи валиден JSON

= NULL

json_validate(string $json, int $depth = 512, int $flags = 0): bool

Враќа дали даденото string е синтаксички валиден JSON. Ако json_validate() returns true, json_decode() успешно ќе го декодира дадениот стринг кога се користи истиот depth and flags.

Враќа json_validate() returns false, причината може да се добие со користење на json_last_error() and json_last_error_msg().

json_validate() користи помалку меморија од json_decode() ако декодираната JSON содржина не се користи, бидејќи не треба да се гради структурата на низата или објектот што ја содржи содржината.

Безбедност: стандардниот сет на знаци

Повикување json_validate() непосредно пред json_decode() непотребно ќе го парсира стрингот двапати, бидејќи json_decode() имплицитно врши валидација при декодирање.

json_validate() затоа треба да се користи само ако декодираната JSON содржина не се користи веднаш и е потребно да се знае дали стринг содржи валиден JSON.

Параметри

json

Стрингот за валидација.

Оваа функција работи само со UTF-8 кодирани стрингови.

Забелешка:

PHP имплементира надсет на JSON како што е наведено во оригиналниот Bitmask кој се состои од.

depth

Максимална длабочина на вгнездување на структурата што се декодира. Вредноста мора да биде поголема од 0, и помала или еднаква на 2147483647.

flags

Моментално само JSON_INVALID_UTF8_IGNORE се прифаќа.

Вратени вредности

Патеката до PHP скриптата што треба да се провери. true ако дадениот стринг е синтаксички валиден JSON, инаку враќа false.

Errors/Exceptions

Враќа depth е надвор од дозволениот опсег, а ValueError се фрла.

Враќа flags не е валидно знаме, а ValueError се фрла.

Примери

Пример #1 json_validate() examples

<?php
var_dump
(json_validate('{ "test": { "foo": "bar" } }'));
var_dump(json_validate('{ "": "": "" } }'));
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

bool(true)
bool(false)

Види Исто така

  • json_decode() - Декодира JSON стринг
  • json_last_error() - Враќа последна грешка што се случила
  • json_last_error_msg() - Враќа низа за грешка од последниот повик на json_validate(), json_encode() или json_decode()

Белешки од корисници 3 белешки

Behrad
пред 2 години
---------------- PHP < 8.3 ---------------- 

function json_validate(string $string): bool {
    json_decode($string);

    return json_last_error() === JSON_ERROR_NONE;
}

var_dump(json_validate('{ "test": { "foo": "bar" } }')); // true

---------------- PHP >= 8.3 ---------------- 

var_dump(json_validate('{ "test": { "foo": "bar" } }')); // true

Note: code from https://www.php.net/releases/8.3/en.php
Julien T.
пред 2 години
Building upon Allan R.'s initial idea, I've developed an improved version of the json_validate function for those using PHP 8.2 and earlier versions. This function emulates the functionality introduced in PHP 8.3, providing an effective way to validate JSON strings in earlier PHP versions.

```php
if (!function_exists('json_validate')) {
    /**
     * Validates a JSON string.
     * 
     * @param string $json The JSON string to validate.
     * @param int $depth Maximum depth. Must be greater than zero.
     * @param int $flags Bitmask of JSON decode options.
     * @return bool Returns true if the string is a valid JSON, otherwise false.
     */
    function json_validate($json, $depth = 512, $flags = 0) {
        if (!is_string($json)) {
            return false;
        }

        try {
            json_decode($json, false, $depth, $flags | JSON_THROW_ON_ERROR);
            return true;
        } catch (\JsonException $e) {
            return false;
        }
    }
}
```

Key Improvements:

- String Check: Added a validation to ensure the input is a string.
- Error Handling: Utilizes try-catch to effectively catch and handle JsonException.
- Backward Compatibility: Safely integrable in older PHP versions, automatically deferring to native functionality in PHP 8.3+.
c точка smith на fantasticmedia точка co точка uk
6 месеци пред
Please note that this will return true if the value is numerical, whether it's of type int/float, or a string. This is something to be aware of if you're expecting an array/object, which may cause issues down the line when handling it.
Навигација

Прелистувај сродни теми и функции.

На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.