summaryrefslogtreecommitdiff
path: root/vendor/thecodingmachine/safe/generated/json.php
blob: dad455ccd13d5346237899cf6d5c3f0910c304d2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?php

namespace Safe;

use Safe\Exceptions\JsonException;

/**
 * Returns a string containing the JSON representation of the supplied
 * value.
 *
 * The encoding is affected by the supplied options
 * and additionally the encoding of float values depends on the value of
 * serialize_precision.
 *
 * @param mixed $value The value being encoded. Can be any type except
 * a resource.
 *
 * All string data must be UTF-8 encoded.
 *
 * PHP implements a superset of JSON as specified in the original
 * RFC 7159.
 * @param int $options Bitmask consisting of
 * JSON_FORCE_OBJECT,
 * JSON_HEX_QUOT,
 * JSON_HEX_TAG,
 * JSON_HEX_AMP,
 * JSON_HEX_APOS,
 * JSON_INVALID_UTF8_IGNORE,
 * JSON_INVALID_UTF8_SUBSTITUTE,
 * JSON_NUMERIC_CHECK,
 * JSON_PARTIAL_OUTPUT_ON_ERROR,
 * JSON_PRESERVE_ZERO_FRACTION,
 * JSON_PRETTY_PRINT,
 * JSON_UNESCAPED_LINE_TERMINATORS,
 * JSON_UNESCAPED_SLASHES,
 * JSON_UNESCAPED_UNICODE,
 * JSON_THROW_ON_ERROR.
 * The behaviour of these constants is described on the
 * JSON constants page.
 * @param int $depth Set the maximum depth. Must be greater than zero.
 * @return string Returns a JSON encoded string on success.
 * @throws JsonException
 *
 */
function json_encode($value, int $options = 0, int $depth = 512): string
{
    error_clear_last();
    $result = \json_encode($value, $options, $depth);
    if ($result === false) {
        throw JsonException::createFromPhpError();
    }
    return $result;
}


/**
 * Returns the error string of the last json_encode or json_decode
 * call, which did not specify JSON_THROW_ON_ERROR.
 *
 * @return string Returns the error message on success, "No error" if no
 * error has occurred.
 * @throws JsonException
 *
 */
function json_last_error_msg(): string
{
    error_clear_last();
    $result = \json_last_error_msg();
    if ($result === false) {
        throw JsonException::createFromPhpError();
    }
    return $result;
}