ホームページ >バックエンド開発 >PHPチュートリアル >PHP は json_encode を使用して変数 json_PHP チュートリアルをエンコードします
この記事では、json_encode を使用する際に注意する必要がある内容を主に説明します。フロントエンドが配列を必要とする場合、それが配列であっても、json が返されるとしても、これは必ずしも間違った結果であるという意味ではありません。配列はその逆の正しい結果になります
ajax が蔓延している今日の世界では、当然のことながら、json はフロントエンドとバックエンドの相互作用のための非常に重要なツールとなっています。 PHP の場合、通常、PHP グループ番号をフロントエンドで解析できる JSON 文字列に変換するために json_encode メソッドが使用されます。これは PHP マニュアルにも記載されていますが、これは事実ですか?以下のコードを見てください:
コードは次のとおりです:
$a = array( 'ジャック' , 'サム' , 'トム' );
echo json_encode( $a );
JavaScriptが上記のコードをリクエストすると、PHPは配列$aをjson文字列に解析してフロントエンドに返しますが、実際にはフロントエンドで得られる戻り結果は配列です。
コードは次のとおりです:
[ "ジャック" 、 "サム" 、 "トム" ]
この結果はフロントエンドで期待されるものではない可能性があります。JavaScript の場合、配列と json の関係は非常に密接であり、json は単純に連想配列として理解することもできますが、これは 2 つが同等であることを意味するものではありません。 . たとえば、json には長さ属性がなく、数値インデックスを付けることはできません。json はキーと値のペアであり、厳密に言えば JavaScript 配列には「キー」がありません。これは PHP とはまったく異なります。では、なぜ json_encode の戻り結果が配列になるのでしょうか?
この記事の冒頭にある PHP コードの配列は、厳密な意味では数値インデックス配列です。このような配列を処理する場合、json_encode メソッドは配列文字列を返します。次の 2 つの条件を同時に満たす必要があります。数値インデックス配列、2。インデックス値は 0 から始まります。これは、次のコードも同じ結果を返すことを意味します:
コードは次のとおりです:
$b = 配列(
'0' => 'ジャック',
'1' => 'サム'、
「2」=>「トム」
);
echo json_encode( $b );
これら 2 つの条件のいずれかが満たされない場合、json_encode メソッドは実際に json 文字列を返します:
コードは次のとおりです:
$c = 配列(
'person-1' => 'ジャック',
'person-2' => 'サム'、
'person-3' => 'トム'
);
echo json_encode( $c );
フロントエンドによって取得された結果は次のとおりです:
コードは次のとおりです:
{
'person-1' : 'ジャック'、
'person-2' : 'サム'、
'person-3' : 'トム'
};
する必要があります。