JSON İşlevleri
PHP Manual

json_decode

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

json_decodeDecodes a JSON string

Açıklama

mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 ]] )

Takes a JSON encoded string and converts it into a PHP variable.

Değiştirgeler

json

The json string being decoded.

assoc

When TRUE, returned objects will be converted into associative arrays.

depth

User specified recursion depth.

Dönen Değerler

Returns an object or if the optional assoc parameter is TRUE, an associative array is instead returned. NULL is returned if the json cannot be decoded or if the encoded data is deeper than the recursion limit.

Örnekler

Örnek 1 json_decode() examples

<?php
$json 
'{"a":1,"b":2,"c":3,"d":4,"e":5}';

var_dump(json_decode($json));
var_dump(json_decode($jsontrue));

?>

Yukarıdaki örneğin çıktısı:

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)
}

Örnek 2 Another example

<?php

$json 
'{"foo-bar": 12345}';

$obj json_decode($json);
print 
$obj->{'foo-bar'}; // 12345

?>

Örnek 3 common mistakes using json_decode()

<?php

// the following strings are valid JavaScript but not valid JSON

// the name and value must be enclosed in double quotes
// single quotes are not valid 
$bad_json "{ 'bar': 'baz' }";
json_decode($bad_json); // null

// the name must be enclosed in double quotes
$bad_json '{ bar: "baz" }';
json_decode($bad_json); // null

// trailing commas are not allowed
$bad_json '{ bar: "baz", }';
json_decode($bad_json); // null

?>

Örnek 4 depth errors

<?php
// Encode the data.
$json json_encode(
    array(
        
=> array(
            
'English' => array(
                
'One',
                
'January'
            
),
            
'French' => array(
                
'Une',
                
'Janvier'
            
)
        )
    )
);

// Define the errors.
$json_errors = array(
    
JSON_ERROR_NONE => 'No error has occurred',
    
JSON_ERROR_DEPTH => 'The maximum stack depth has been exceeded',
    
JSON_ERROR_CTRL_CHAR => 'Control character error, possibly incorrectly encoded',
    
JSON_ERROR_SYNTAX => 'Syntax error',
);

// Show the errors for different depths.
foreach(range(43, -1) as $depth) {
    
var_dump(json_decode($jsonTrue$depth));
    echo 
'Last error : '$json_errors[json_last_error()], PHP_EOLPHP_EOL;
    }
?>

Yukarıdaki örneğin çıktısı:

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"
    }
  }
}
Last error : No error has occurred

NULL
Last error : The maximum stack depth has been exceeded

Notlar

Bilginize: The JSON spec is not JavaScript, but a subset of JavaScript.

Bilginize: In the event of a failure to decode, json_last_error() can be used to determine the exact nature of the error.

Sürüm Bilgisi

Sürüm: Açıklama
5.3.0 Added the optional depth . The default recursion depth was increased from 128 to 512
5.2.3 The nesting limit was increased from 20 to 128

Ayrıca Bakınız


JSON İşlevleri
PHP Manual