バージョン 5.2 以降、PHP は json_encode() 関数と json_decode() 関数をネイティブに提供します。前者はエンコードに使用され、後者はデコードに使用されます。
1. json_encode()
この関数は主に配列とオブジェクトを json 形式に変換するために使用されます。まず配列変換の例を見てみましょう:
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4, 'e '=>5);
echo json_encode($arr);
結果は
{"a":1,"b":2,"c":3,"d" :4, "e":5}
オブジェクト変換の別の例を見てください:
コードをコピーします コードは次のとおりです:
$ obj->body = '別の投稿';
$obj->id = 21;
$obj->approved = true;お気に入り数 = 1;
$obj->status = NULL;
結果は
コードをコピーします コードは次のとおりです:
{ "body": "another post",
"id": 21,
"approved ": true,
"favorite_count": 1,
"status":null
}
json は utf-8 でエンコードされた文字のみを受け入れるため、json_encode() のパラメーターutf-8 でエンコードされている必要があります。そうでない場合は、空の文字または null が返されます。中国語で GB2312 エンコードを使用する場合、または外国語で ISO-8859-1 エンコードを使用する場合は、この点に特別な注意を払う必要があります。
2. インデックス付き配列と連想配列
PHP は 2 種類の配列をサポートしています。1 つは「値」(値) のみを格納するインデックス付き配列です。名前と値のペアを格納する連想配列。
JavaScript は連想配列をサポートしていないため、json_encode() はインデックス付き配列を配列形式に変換するだけであり、連想配列をオブジェクト形式に変換します。
たとえば、インデックス配列があります
コードをコピー コードは次のとおりです:
$arr = Array('one' , 'two', 'three'); echo json_encode($arr);
結果は次のようになります:
連想配列に変更する場合:
$arr = Array('1'=>'one', '2'=>'two', '3'=> 'three');
echo json_encode($arr);
結果は次のように変わります:
{"1":"one","2":"two","3":"three"}
データの形式が「[]」(配列)から「{}」(オブジェクト)に変更されたことに注意してください。
「インデックス配列」を「オブジェクト」に強制する必要がある場合は、次のように記述できます。
json_encode( (object)$arr );
または
json_encode ( $arr, JSON_FORCE_OBJECT ); 🎜 >
3. クラス変換
以下は PHP クラスです:
コードをコピーします
コード class Foo {
const ERROR_CODE = '404'; public $public_ex = 'これはパブリックです'
private $private_ex = 'これはプライベートです!';
protected $protected_ex = 'これは保護されるべきです';
public function getErrorCode() {
return self::ERROR_CODE; 🎜> 次に、このクラスのインスタンスで json 変換を実行します。 🎜>
コードをコピーします
コードは次のとおりです。
$foo = new Foo
$foo_json = json_encode($ foo);
echo $foo_json; 出力結果は {"public_ex":"this is public"}
はい、パブリック変数 (public) を除きます。 、他のもの(定数、プライベート変数、メソッドなど)がありません。
4. json_decode()
コードをコピー
コードは次のとおりです:
$json = '{"foo": 12345 }';
$obj = json_decode($json);
print $obj->{'foo'}; // 12345 通常、json_decode() は常に配列ではなく PHP オブジェクト。例: $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode() $ json));結果として PHP オブジェクトが生成されます:
コードをコピーします
コードは次のとおりです:
object(stdClass)#1 (5) {
["a"] => int(1)
["b"] => int(2)
[ "c"] => int(3)
["d"] => int(4)
["e"] => int(5)
$json = '{"a":1,"b":2,"c": を追加する必要があります。 3,"d ":4,"e":5}';
var_dump(json_decode($json),true);
結果は連想配列です:
コードをコピー コードは次のとおりです。
array(5) {
["a"] => int(1)
[" b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => ; int(5)
}
5. json_decode()
のjsonの書き方は以下の3通りです。間違っています。「どこ?」というエラーが表示されます。
コードをコピー コードは次のとおりです。
$bad_json = "{ 'bar': 'baz' }";
$bad_json = '{ bar: "baz" }';
$bad_json = '{ "bar": "baz", }'
最初のエラーは、JSON 区切り文字では一重引用符ではなく二重引用符のみが使用できることです。 2 番目の間違いは、JSON の名前と値のペアの「名前」 (コロンの左側の部分) では、いかなる場合でも二重引用符を使用する必要があることです。 3 番目のエラーは、最後の値の後にカンマを追加できないことです。
さらに、json はオブジェクトと配列を表すためにのみ使用できます。json_decode() が文字列または値に対して使用された場合は、null が返されます。
var_dump(json_decode("Hello World")); //null

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

Dreamweaver Mac版
ビジュアル Web 開発ツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

WebStorm Mac版
便利なJavaScript開発ツール
