phpのjson_Encode関数の問題

1975 ワード

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)."
"
;

出力の結果は次のとおりです.

{"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)."
"
;

出力結果は次のとおりです.

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