理解json两种结构:数组和对象

Json是一种异常简单易懂的数据格式,关于json的规定,仅仅如下而已:

    1) 并列的数据之间用逗号(", ")分隔。
    2) 映射用冒号(": ")表示。
    3) 并列数据的集合(数组)用方括号("[]")表示。
    4) 映射的集合(对象)用大括号("{}")表示。

1、

$arr = array(111,'aaa','bbb');
 
$arr1 = array(
    'a' => 'aaa',
    'b' => 222
);
 
$arr2 = array(
    'a' => 'aaa',
    'other' => array(
        'bbb',1111
    )
);
echo json_encode($arr); //[111,"aaa","bbb"]
 
echo json_encode($arr1); //{"a":"aaa","b":222}
 
echo json_encode($arr2); //{"a":"aaa","other":["bbb",1111]}

从上看出:由于javascript不支持关联数组,所以json_encode()只将索引数组(indexed array)转为数组格式,而将关联数组(associative array)转为对象格式。

关于PHP对json支持说明:

    json_encode只支持UTF-8编码的数据;
    json_decode永远只反映一个PHP对象,带上第二个参数true可返回数组:

2、

$json = '{"a":"aaa","other":["bbb",1111]}';
 
print_r(json_decode($json));
 
print_r(json_decode($json, true));  

 

posted on 2014-09-26 14:43  泪雨星空  阅读(952)  评论(0编辑  收藏  举报

导航