php的json_encode函数问题
在公司做了一个应用,是php与c++进行网络交互,所以选择了json这种比较通用的序列化格式,然而却遇到了比较奇怪的问题。
先来看如下代码(php):

1
2
3
4
5
$objs = array();
$objs[1] = 'a';
$objs[2] = 'b';
$objs[4] = 'd';
echo json_encode($objs)."\n";

输出的结果如下:

{"0":"a","1":"b","3":"d"}

这样是正常的,用jsoncpp也可以正确的解析出来,php自动将$objs当作一个关联数组来生成json数据了。
然而当把代码换成如下:

1
2
3
4
5
6
$objs = array();
$objs[0] = 'a';
$objs[1] = 'b';
$objs[2] = 'c';
$objs[3] = 'd';
echo json_encode($objs)."\n";

则输出结果如下:

["a","b","c","d"]