首页 > 代码库 > 数组和json的相互转换

数组和json的相互转换

json_encode()

<?php

/*****一维数组*********/
//有键
$arr = array(
	'a'=>1, 
	'b'=>2,
	'c'=>3,
);
$json = json_encode($arr);
echo($json);  //{"a":1,"b":2,"c":3}

//无键
$arr = array(1,2,3);
$json = json_encode($arr);
echo($json);  //[1,2,3]

/*****二维数组*********/
//有键
$arr = array(
	'a' => array('id'=>1, 'xuefei'=>"100" ), 
	'b' => array('id'=>2, 'xuefei'=>"200" ),
	'c' => array('id'=>3, 'xuefei'=>"300" ),
);
$json = json_encode($arr);
echo($json);  //{"a":{"id":1,"xuefei":"100"},"b":{"id":2,"xuefei":"200"},"c":{"id":3,"xuefei":"300"}}

//无键
$arr = array(
	array('id'=>1, 'xuefei'=>"100" ), 
	array('id'=>2, 'xuefei'=>"200" ),
	array('id'=>3, 'xuefei'=>"300" ),
);
$json = json_encode($arr);
echo($json);  //[{"id":1,"xuefei":"100"},{"id":2,"xuefei":"200"},{"id":3,"xuefei":"300"}]

?>

json_decode

<?php

/*****一维json*********/
//有键
$json = '{"a":1,"b":2,"c":3}'; //不加key的话输出null
$arr = json_decode($json);
var_dump($arr);
/*
输出:
object(stdClass)[1]
  public 'a' => int 1
  public 'b' => int 2
  public 'c' => int 3
*/ 

//无键
$json = '["a","b","c"]';  //加key的话输出null
$arr = json_decode($json);
var_dump($arr);
/*
输出:
array (size=3)
  0 => string 'a' (length=1)
  1 => string 'b' (length=1)
  2 => string 'c' (length=1)
*/

/*****二维json*********/
//有键
$json = '{"a":{"id":1,"xuefei":"100"},"b":{"id":2,"xuefei":"200"},"c":{"id":3,"xuefei":"300"}}';
$arr = json_decode($json,true);
var_dump($arr);
/*
输出:
array (size=3)
  'a' => 
    array (size=2)
      'id' => int 1
      'xuefei' => string '100' (length=3)
  'b' => 
    array (size=2)
      'id' => int 2
      'xuefei' => string '200' (length=3)
  'c' => 
    array (size=2)
      'id' => int 3
      'xuefei' => string '300' (length=3)
*/ 

//无键
$json = '[{"id":1,"xuefei":"100"},{"id":2,"xuefei":"200"},{"id":3,"xuefei":"300"}]';
$arr = json_decode($json,true);
var_dump($arr);
/*
输出:
array (size=3)
  0 => 
    array (size=2)
      'id' => int 1
      'xuefei' => string '100' (length=3)
  1 => 
    array (size=2)
      'id' => int 2
      'xuefei' => string '200' (length=3)
  2 => 
    array (size=2)
      'id' => int 3
      'xuefei' => string '300' (length=3)
*/ 

?>