json_decode

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL json >= 1.2.0)

json_decode β€” Π”Π΅ΠΊΠΎΠ΄ΡƒΡ” рядок JSON

Опис

json_decode(Β Β Β Β string $json,Β Β Β Β ?bool $associative = null,Β Β Β Β int $depth = 512,Β Β Β Β int $flags = 0): mixed

ΠŸΡ€ΠΈΠΉΠΌΠ°Ρ” Π·Π°ΠΊΠΎΠ΄ΠΎΠ²Π°Π½ΠΈΠΉ Ρƒ JSON рядок Ρ– ΠΏΠ΅Ρ€Π΅Ρ‚Π²ΠΎΡ€ΡŽΡ” ΠΉΠΎΠ³ΠΎ Π½Π° PHP-значСння.

Бписок ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ–Π²

json

Π‘Ρ‚Ρ€ΠΎΠΊΠ° (string)json для дСкодування.

Ѐункція ΠΏΡ€Π°Ρ†ΡŽΡ” Ρ‚Ρ–Π»ΡŒΠΊΠΈ Π· рядками кодування UTF-8.

ЗауваТСння :

PHP Ρ€Π΅Π°Π»Ρ–Π·ΡƒΡ” Π½Π°Π΄ΠΌΠ½ΠΎΠΆΠΈΠ½Π° JSON, який описаний Ρƒ ΠΏΠΎΡ‡Π°Ρ‚ΠΊΠΎΠ²ΠΎΠΌΡƒ » RFC 7159

associative

Π―ΠΊΡ‰ΠΎ true, ΠΎΠ±'Ρ”ΠΊΡ‚ΠΈ JSON Π±ΡƒΠ΄ΡƒΡ‚ΡŒ ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚Ρ– як асоціативні масиви (array); якщо false, ΠΎΠ±'Ρ”ΠΊΡ‚ΠΈ JSON Π±ΡƒΠ΄ΡƒΡ‚ΡŒ ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚Ρ– як ΠΎΠ±'Ρ”ΠΊΡ‚ΠΈ (object). Π―ΠΊΡ‰ΠΎ null, ΠΎΠ±'Ρ”ΠΊΡ‚ΠΈ JSON Π±ΡƒΠ΄ΡƒΡ‚ΡŒ ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚Ρ– як асоціативні масиви (array) Π°Π±ΠΎ ΠΎΠ±'Ρ”ΠΊΡ‚ΠΈ (object) Π² залСТності Π²Ρ–Π΄ Ρ‚ΠΎΠ³ΠΎ, Ρ‡ΠΈ встановлСна **JSON_OBJECT_AS_ARRAY**Π²flags

depth

Максимальна Π³Π»ΠΈΠ±ΠΈΠ½Π° вкладСності структури, Π½Π° яку ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΠΈΠΌΠ΅Ρ‚ΡŒΡΡ дСкодування. ЗначСння ΠΌΠ°Ρ” Π±ΡƒΡ‚ΠΈ Π±Ρ–Π»ΡŒΡˆΠΈΠΌ Ρ– мСншС Ρ‡ΠΈ ΠΎΠ΄Π½ΠΎ 2147483647

flags

Битовая маска ΠΈΠ· констант**JSON_BIGINT_AS_STRING** JSON_INVALID_UTF8_IGNORE JSON_INVALID_UTF8_SUBSTITUTE JSON_OBJECT_AS_ARRAY JSON_THROW_ON_ERROR. ΠŸΠΎΠ²Π΅Π΄Ρ–Π½ΠΊΠ° Ρ†ΠΈΡ… констант описано Π½Π° сторінці JSON-констант

ЗначСння, Ρ‰ΠΎ ΠΏΠΎΠ²Π΅Ρ€Ρ‚Π°ΡŽΡ‚ΡŒΡΡ

ΠŸΠΎΠ²Π΅Ρ€Ρ‚Π°Ρ” Π΄Π°Π½Ρ– json, ΠΏΠ΅Ρ€Π΅Ρ‚Π²ΠΎΡ€Π΅Π½Ρ– Π½Π° Ρ‚ΠΈΠΏΠΈ PHP. НС ΡƒΠΊΠ»Π°Π΄Π΅Π½Ρ– Π² Π»Π°ΠΏΠΊΠΈ значСння true falseΠΈnull ΠΏΠΎΠ²Π΅Ρ€Ρ‚Π°ΡŽΡ‚ΡŒΡΡ як Ρ‚ΠΈΠΏΡ–Π·ΠΎΠ²Π°Π½Ρ– значСння true **false** Ρ– **nullΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ с Ρ‚ΠΈΠΏΠΎΠΌnull**Ρ‚Π°ΠΊΠΆΠ΅ возвращаСтся Π² случаях, ΠΊΠΎΠ³Π΄Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€json Π½Π΅ ΠΌΠΎΠΆΠ΅ Π±ΡƒΡ‚ΠΈ ΠΏΠ΅Ρ€Π΅Ρ‚Π²ΠΎΡ€Π΅Π½ΠΈΠΉ Π°Π±ΠΎ Π³Π»ΠΈΠ±ΠΈΠ½Π° вкладСності структури ΠΏΠ΅Ρ€Π΅Π²ΠΈΡ‰ΡƒΡ” встановлСну ΠΌΠ΅ΠΆΡƒ.

Помилки

ΠŸΠΎΡ‡ΠΈΠ½Π°ΡŽΡ‡ΠΈ Π· PHP 8.0.0, якщо значСння ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° depth Π²ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π·Π° ΠΌΠ΅ΠΆΡ– допустимого Π΄Ρ–Π°ΠΏΠ°Π·ΠΎΠ½Ρƒ, функція Π²ΠΈΠΊΠΈΠ΄Π°Ρ” виняток ValueError; Ρ€Π°Π½Ρ–ΡˆΠ΅ видавалася ΠΏΠΎΠΌΠΈΠ»ΠΊΠ° рівня E_WARNING

список Π·ΠΌΡ–Π½

Π’Π΅Ρ€ΡΠΈΡΠžΠΏΠΈΡ
7.3.0Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° константа**JSON_THROW_ON_ERROR**для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°flags
7.2.0associative Ρ‚Π΅ΠΏΠ΅Ρ€ nullable.
7.2.0Π”ΠΎΠ΄Π°Π½Ρ– константи **JSON_INVALID_UTF8_IGNORE** Ρ– **JSON_INVALID_UTF8_SUBSTITUTE**для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°flags
7.1.0ΠŸΠΎΡ€ΠΎΠΆΠ½Ρ–ΠΉ ΠΊΠ»ΡŽΡ‡ JSON ("") Π±ΡƒΠ΄Π΅ ΠΏΠ΅Ρ€Π΅Ρ‚Π²ΠΎΡ€Π΅Π½ΠΎ Π½Π° ΠΏΠΎΡ€ΠΎΠΆΠ½ΡŽ Π²Π»Π°ΡΡ‚ΠΈΠ²Ρ–ΡΡ‚ΡŒ ΠΎΠ±'Ρ”ΠΊΡ‚Π°, Π° Π½Π΅ Π½Π° Π²Π»Π°ΡΡ‚ΠΈΠ²Ρ–ΡΡ‚ΡŒ Π·Ρ– значСнням _empty_

ΠŸΡ€ΠΈΠΊΠ»Π°Π΄ΠΈ

ΠŸΡ€ΠΈΠΊΠ»Π°Π΄ #1 ΠŸΡ€ΠΈΠΊΠ»Π°Π΄ΠΈ використання json_decode()

Loading...

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ виконання Π½Π°Π²Π΅Π΄Π΅Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Ρƒ:

object(stdClass)#1 (5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

array(5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

ΠŸΡ€ΠΈΠΊΠ»Π°Π΄ #2 Доступ Π΄ΠΎ властивостСй ΠΎΠ±'Ρ”ΠΊΡ‚Ρ–Π² Ρ–Π· Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΈΠΌΠΈ Ρ–ΠΌΠ΅Π½Π°ΠΌΠΈ

Доступ Π΄ΠΎ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ–Π² ΠΎΠ±'Ρ”ΠΊΡ‚Π°, які ΠΌΡ–ΡΡ‚ΡΡ‚ΡŒ символи, нСприпустимі Π²Ρ–Π΄ΠΏΠΎΠ²Ρ–Π΄Π½ΠΎ Π΄ΠΎ ΡƒΠ³ΠΎΠ΄ΠΈ ΠΏΡ€ΠΎ Ρ–ΠΌΠ΅Π½Π° PHP (Ρ‚ΠΎΠ±Ρ‚ΠΎ дСфіс), ΠΌΠΎΠΆΠ΅ Π±ΡƒΡ‚ΠΈ Π²ΠΈΠΊΠΎΠ½Π°Π½ΠΈΠΉ ΡˆΠ»ΡΡ…ΠΎΠΌ обрамлСння Ρ–ΠΌΠ΅Π½Ρ– Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π° Ρ„Ρ–Π³ΡƒΡ€Π½ΠΈΠΌΠΈ Π΄ΡƒΠΆΠΊΠ°ΠΌΠΈ Ρ‚Π° апострофами.

Loading...

ΠŸΡ€ΠΈΠΊΠ»Π°Π΄ #3 ΠŸΠΎΡˆΠΈΡ€Π΅Π½Π° ΠΏΠΎΠΌΠΈΠ»ΠΊΠ° ΠΏΡ–Π΄ час використання json_decode()

Loading...

ΠŸΡ€ΠΈΠΊΠ»Π°Π΄ #4 Помилки Π· глибиною Π²ΠΊΠ»Π°Π΄Π΅Π½ΠΈΡ… ΠΎΠ±'Ρ”ΠΊΡ‚Ρ–Π² (depth) .

Loading...

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ виконання Π½Π°Π²Π΅Π΄Π΅Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Ρƒ:

array(1) {
  [1]=>
  array(2) {
    ["English"]=>
    array(2) {
      [0]=>
      string(3) "One"
      [1]=>
      string(7) "January"
    }
    ["French"]=>
    array(2) {
      [0]=>
      string(3) "Une"
      [1]=>
      string(7) "Janvier"
    }
  }
}
ПослСдняя ошибка: No error

NULL
ПослСдняя ошибка: Maximum stack depth exceeded

ΠŸΡ€ΠΈΠΊΠ»Π°Π΄ #5json_decode()** Π· Π²Π΅Π»ΠΈΠΊΠΈΠΌΠΈ Ρ†Ρ–Π»ΠΈΠΌΠΈ числами**

Loading...

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ виконання Π½Π°Π²Π΅Π΄Π΅Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Ρƒ:

object(stdClass)#1 (1) {
  ["number"]=>
  float(1.2345678901235E+19)
}
object(stdClass)#1 (1) {
  ["number"]=>
  string(20) "12345678901234567890"
}

ΠŸΡ€ΠΈΠΌΡ–Ρ‚ΠΊΠΈ

ЗауваТСння :

БпСцифікація JSON – Ρ†Π΅ Π½Π΅ JavaScript, Π° ΠΉΠΎΠ³ΠΎ ΠΏΡ–Π΄ΠΌΠ½ΠΎΠΆΠΈΠ½Π°.

ЗауваТСння :

Π£ Ρ€Π°Π·Ρ– виникнСння ΠΏΠΎΠΌΠΈΠ»ΠΊΠΈ дСкодування ΠΌΠΎΠΆΠ½Π° використовувати json_last_error() визначСння Ρ—Ρ— ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈ.

Π”ΠΈΠ²Ρ–Ρ‚ΡŒΡΡ Ρ‚Π°ΠΊΠΎΠΆ

  • json_encode() - ΠŸΠΎΠ²Π΅Ρ€Ρ‚Π°Ρ” JSON-подання Π΄Π°Π½ΠΈΡ…
  • json_last_error() - ΠŸΠΎΠ²Π΅Ρ€Ρ‚Π°Ρ” ΠΎΡΡ‚Π°Π½Π½ΡŽ ΠΏΠΎΠΌΠΈΠ»ΠΊΡƒ