json_encode 
  (PHP 5 >= 5.2.0, PECL json >= 1.2.0)
json_encode  — Возвращает JSON-представление данных 
  
 
  Описание 
  
   string  json_encode 
    ( 
mixed   $value 
   [, 
int  $options  = 0 
  ] )
 
  
  
 
  Список параметров 
  
   
    
     value  
      
      
       value   - значение, которое будет закодировано. Может быть любого типа
       за исключением resource  .
      
      
       Функция работает только с кодированными в UTF-8 данными.
      
      
    
    
     options  
      
      
       Битовая маска составляемая из значений JSON_HEX_QUOT  ,
       JSON_HEX_TAG  ,
       JSON_HEX_AMP  ,
       JSON_HEX_APOS  ,
       JSON_NUMERIC_CHECK  ,
       JSON_BIGINT_AS_STRING  ,
       JSON_PRETTY_PRINT  ,
       JSON_UNESCAPED_SLASHES  ,
       JSON_FORCE_OBJECT  ,
       JSON_UNESCAPED_UNICODE  .
      
      
    
    
  
  
 
  Возвращаемые значения 
  
   Возвращает JSON закодированную строку (string  ) в случае успеха.
  
  
 
 
  Примеры 
  
   
    Пример #1 Пример использования json_encode()  
    
<?php $arr  = array( 'a'  =>  1 ,  'b'  =>  2 ,  'c'  =>  3 ,  'd'  =>  4 ,  'e'  =>  5 ); echo  json_encode ( $arr ); ?> 
 
     
    Результат выполнения данного примера:
 
    
{"a":1,"b":2,"c":3,"d":4,"e":5}
  
     
    
   
    Пример #2 Пример использования json_encode()  , показывающий действия всех опций 
    
<?php $a  = array( '<foo>' , "'bar'" , '"baz"' , '&blong&' ,  "\xc3\xa9" ); echo  "Обычно: " ,      json_encode ( $a ),  "\n" ; echo  "Тэги: " ,        json_encode ( $a ,  JSON_HEX_TAG ),  "\n" ; echo  "Апострофы: " ,   json_encode ( $a ,  JSON_HEX_APOS ),  "\n" ; echo  "Ковычки: " ,     json_encode ( $a ,  JSON_HEX_QUOT ),  "\n" ; echo  "Амперсанты: " ,  json_encode ( $a ,  JSON_HEX_AMP ),  "\n" ; echo  "Юникод: " ,      json_encode ( $a ,  JSON_UNESCAPED_UNICODE ),  "\n" ; echo  "Все: " ,         json_encode ( $a ,  JSON_HEX_TAG  |  JSON_HEX_APOS  |  JSON_HEX_QUOT  |  JSON_HEX_AMP  |  JSON_UNESCAPED_UNICODE ),  "\n\n" ; $b  = array(); echo  "Отображение пустого массива как массива: " ,  json_encode ( $b ),  "\n" ; echo  "Отображение пустого массива как объекта: " ,  json_encode ( $b ,  JSON_FORCE_OBJECT ),  "\n\n" ; $c  = array(array( 1 , 2 , 3 )); echo  "Отображение неассоциативного массива как массива: " ,  json_encode ( $c ),  "\n" ; echo  "Отображение неассоциативного массива как объекта: " ,  json_encode ( $c ,  JSON_FORCE_OBJECT ),  "\n\n" ; $d  = array( 'foo'  =>  'bar' ,  'baz'  =>  'long' ); echo  "Ассоциативный массив всегда отображается как объект: " ,  json_encode ( $d ),  "\n" ; echo  "Ассоциативный массив всегда отображается как объект: " ,  json_encode ( $d ,  JSON_FORCE_OBJECT ),  "\n\n" ; ?> 
 
     
    Результат выполнения данного примера:
 
    
Обычно: ["<foo>","'bar'","\"baz\"","&blong&","\u00e9"]
Тэги: ["\u003Cfoo\u003E","'bar'","\"baz\"","&blong&","\u00e9"]
Апострофы: ["<foo>","\u0027bar\u0027","\"baz\"","&blong&","\u00e9"]
Ковычки: ["<foo>","'bar'","\u0022baz\u0022","&blong&","\u00e9"]
Амперсанты: ["<foo>","'bar'","\"baz\"","\u0026blong\u0026","\u00e9"]
Unicode: ["<foo>","'bar'","\"baz\"","&blong&","?"]
Все: ["\u003Cfoo\u003E","\u0027bar\u0027","\u0022baz\u0022","\u0026blong\u0026","?"]
Отображение пустого массива как массива: []
Отображение не ассоциативного массива как объекта: {}
Отображение неассоциативного массива как массива: [[1,2,3]]
Отображение неассоциативного массива как объекта: {"0":{"0":1,"1":2,"2":3}}
Ассоциативный массив всегда отображается как объект: {"foo":"bar","baz":"long"}
Ассоциативный массив всегда отображается как объект: {"foo":"bar","baz":"long"}
  
     
    
   
    Пример #3 Пример с последовательными индексами начинающимися с нуля и непоследовательными индексами массивов 
    
<?php echo  "Последовательный массив" . PHP_EOL ; $sequential  = array( "foo" ,  "bar" ,  "baz" ,  "blong" ); var_dump (   $sequential ,   json_encode ( $sequential ) ); echo  PHP_EOL . "Непоследовательный массив" . PHP_EOL ; $nonsequential  = array( 1 => "foo" ,  2 => "bar" ,  3 => "baz" ,  4 => "blong" ); var_dump (   $nonsequential ,   json_encode ( $nonsequential ) ); echo  PHP_EOL . "Последовательный массив с одним удаленным индексом" . PHP_EOL ; unset( $sequential [ 1 ]); var_dump (   $sequential ,   json_encode ( $sequential ) ); ?> 
 
     
    Результат выполнения данного примера:
 
    
Последовательный массив
array(4) {
  [0]=>
  string(3) "foo"
  [1]=>
  string(3) "bar"
  [2]=>
  string(3) "baz"
  [3]=>
  string(5) "blong"
}
string(27) "["foo","bar","baz","blong"]"
Непоследовательный массив
array(4) {
  [1]=>
  string(3) "foo"
  [2]=>
  string(3) "bar"
  [3]=>
  string(3) "baz"
  [4]=>
  string(5) "blong"
}
string(43) "{"1":"foo","2":"bar","3":"baz","4":"blong"}"
Последовательный массив с одним удаленным индексом
array(3) {
  [0]=>
  string(3) "foo"
  [2]=>
  string(3) "baz"
  [3]=>
  string(5) "blong"
}
string(33) "{"0":"foo","2":"baz","3":"blong"}"
  
     
    
  
  
 
  Примечания 
  Замечание : 
   
    В случае ошибки кодирования, можно использовать json_last_error()  
    для определения точной ошибки.
   
   
  Замечание : 
   
    При кодировании массива в случае, если его индексы не являются 
    последовательными числами от нуля, то все индексы кодируются в строковые
    ключи для каждой пары индекс-значение.