ホームページ バックエンド開発 PHPチュートリアル php_PHP チュートリアルで json_decode() と json_encode() を使用する方法

php_PHP チュートリアルで json_decode() と json_encode() を使用する方法

Jul 21, 2016 pm 03:19 PM
decode encode json php 説明書 そして

1.json_decode()

json_decode
(PHP 5 >= 5.2.0, PECL json >= 1.2.0)

json_decode — 文字列を JSON 形式でエンコードします

Description
mixed json_decode ( string $json [, bool $assoc ] )
JSON 形式の文字列を受け入れ、それを PHP 変数に変換します。

パラメータ

json
デコードされる JSON 文字列形式の文字列。

assoc
このパラメータが TRUE の場合、オブジェクトの代わりに配列が返されます。


オブジェクトを返すか、オプションの assoc パラメーターが TRUE の場合は、代わりに連想配列が返されます

Example

例 #1 json_decode() の例

コードをコピーします コードは次のとおりです。
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; json));
var_dump(json_decode($json, true));
["a"] => int(1)
["b"] => int(2) c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}

array(5) {
["a" ] => int(1)
["b"] => int(2) ["d"] => int(4) e"] => int(5) }


コードをコピー

コードは次のとおりです:


$data='[{"Name":"a1","Number":" 123","続き番号":"000","QQNo":""},{"名前 ":"a1","番号":"123","続き番号":"000","QQNo":"" },{"名前":"a1","番号":"123","Contno" :"000","QQNo":""}]';
echo json_decode($data)


結果は:



コードをコピーします
コードは次のとおりです:
Array ( [0] => ; stdClass Object ( [Name] => a1 [Number] => 123 [Contno] => ; 000 [QQNo] => ) [1] => stdClass オブジェクト ( [名前] => a1 [番号] => 123 [連続番号] => 000 [QQNo] => ) [2] = > stdClass Object ( [Name] => a1 [Number] => 123 [Contno] => 000 [ QQNo] => ) ) json_decode() でコンパイルされたオブジェクトがオブジェクトであることがわかりますjson_decode($data,true) を出力してみます


コードをコピーします
コードは次のとおりです:

echo json_decode ($data,true) 結果:


コードは次のとおりです:

Array ( [0] => Array ( [Name] => a1 [Number] => 123 [Contno] => 000 [QQNo] => ) [ 1] => 配列 ( [名前] => a1 [番号] => 123 [連続番号] => 000 [QQNo] => ) [2] => 配列 ( [名前] => a1 [Number] => 123 [Contno] => [QQNo] => ) ) 出力は連想配列であることがわかります。 data) はオブジェクトを出力し、 json_decode("$arr",true) は PHP 連想配列を強制的に生成します。 >= 1.2.0)
json_encode — JSON エンコード変数

バグを報告する 説明
string json_encode (mixed $value [, int $options = 0 ] )
値の JSON 形式を返す

バグを報告する
パラメーター エンコードされる値は、リソースタイプを除き、任意のデータタイプにすることができます
この関数は、UTF-8でエンコードされたデータのみを受け入れることができます

オプション
次の定数で構成されるバイナリマスク: JSON_HEX_QUOT、JSON_HEX_TAG、JSON_HEX_AMP、JSON_HEX_APOS 、JSON_NUMERIC_CHECK、JSON_PRETTY_PRINT、JSON_UNESCAPED_SLASHES、JSON_FORCE_OBJECT、JSON_UNESCAPED_UNICODE

バグを報告する 戻り値
が正常にエンコードされた場合は、JSON 形式で表される文字列が返され、失敗した場合は FALSE が返されます。
バグを報告する 変更ログ
バージョン 説明
5.4.0 options パラメーターは定数を追加します: JSON_PRETTY_PRINT、JSON_UNESCAPED_SLASHES、および JSON_UNESCAPED_UNICODE。
5.3.3 options パラメーターは定数 JSON_NUMERIC_CHECK を追加します。
5.3.0 オプションパラメータを追加しました


バグを報告する例

例 #1 json_encode() の例



コードをコピーします

コードは次のとおりです:

$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=> 5);

echo json_encode($arr);
?>
上記のルーチンは次のように出力します:

コードは次のとおりです: :1," b": 2,"c":3,"d":4,"e":5}

例 #2 json_encode() 関数での options パラメータの使用法


コードをコピー
コードは次のとおりです以下: < ;?php
$a = array('',"'bar'",'"baz"','&blong&', "xc3xa9");

echo "通常: " , json_encode($a) , "n";
echo "タグ: ", json_encode($a, JSON_HEX_TAG), "n";
echo "アポス: ", json_encode($a, JSON_HEX_APOS)
echo "Quot: ", json_encode($a, JSON_HEX_QUOT), "n";
echo "Amp: ", json_encode($a, JSON_HEX_AMP), "n";
echo "Unicode: ", json_encode($a, JSON_UNESCAPED_UNICODE) ), "n";
echo "すべて: ", json_encode($a, JSON_HEX_TAG | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE), "nn"; array: ", json_encode( $b), "n";
echo "オブジェクトとしての空の配列出力: ", json_encode($b, JSON_FORCE_OBJECT), "nn";

$c = array(array(1,2, 3));

echo "非連想配列を配列として出力: ", json_encode($c), "n";
echo "非連想配列をオブジェクトとして出力: ", json_encode($c, JSON_FORCE_OBJECT) nn";

$ d = array('foo' => 'bar', 'baz' => 'long');

echo "連想配列は常にオブジェクトとして出力されます: ", json_encode($d), "n";
echo "連想配列は常にオブジェクトとして出力されます: ", json_encode($d, JSON_FORCE_OBJECT), "nn"
?>


上記のルーチンは次のように出力します:



コードは次のとおりです:

通常: ["","'bar'",""baz"","&blong&","u00e9"]
タグ: ["u003Cfoou003E","'bar '",""baz""," &blong&","u00e9"]
Apos: ["","u0027baru0027",""baz"","&blong&","u00e9"] 引用: [ "","'bar '","u0022bazu0022","&blong&","u00e9"] アンプ: ["","'bar'",""baz"","u0026blongu0026 ","u00e9"] Unicode: [ "","'bar'",""baz"","&blong&","é"] すべて: ["u003Cfoou003E","u0027baru0027"," u0022bazu0022","u0026blongu0026","é" ]
配列としての空の配列出力: []
オブジェクトとしての空の配列出力: {}

配列としての非結合配列出力: [[1,2,3]]
非連想配列はオブジェクトとして出力されます: {" 0":{"0":1,"1":2,"2":3}}

連想配列は常にオブジェクトとして出力されます: {"foo":"bar" ,"baz":"long"}
連想配列は常にオブジェクトとして出力されます: {"foo":"bar","baz":"long"}


例 #3 連続配列と非連続配列の例



コードをコピーします

コードは次のとおりです:

echo "continuous array".PHP_EOL;
$sequential = array("foo", "bar", "baz", "blong" ); var_dump( $sequential, json_encode($sequential) );
echo PHP_EOL."不連続配列".PHP_EOL = array(1=>"foo", 2=> "bar", 3=>"baz", 4=>" blong");
var_dump(
$nonsequential,
json_encode($nonsequential)
); "生成された不連続な配列を削除します。連続配列値を削除することによって".PHP_EOL;
unset($sequential[1] );
var_dump(
$sequential,
json_encode($sequential)
);
?>


上記のルーチンは次のように出力します:



コードをコピーします

コードは次のとおりです。


連続配列
array( 4) { [0]=>
string(3) "foo"
[1]=> ) "バー"
[2]=> string(3) "baz" [ 3]=> string(5) "blong" }
string(27) "["foo","bar" ,"baz","blong"]"

非連続配列
array(4) {
[1]=>
string(3) "foo"
[2]=>
string(3) " bar"
[3]=>
string(3) "baz"
[4]= >
string(5) "blong"
}
string(43) "{"1":"foo"," 2":"bar","3":"baz","4":"blong" }"

連続配列の値を削除して生成される非連続配列
array(3) {
[0]=> ;
string(3) "foo"
[2]=>
string(3) "baz"
string(5) "blong"
}
string(33) "{"0 ":"foo","2":"baz","3":"blong"} "





コードをコピー

コードは次のとおりです:
$obj->名前= 'a1';$obj->番号='123';
$obj->Contno= '000';


結果は次のとおりです。 :


コードをコピー コードは次のとおりです:
{"Name":"a1",
"Number":"123",
"Contno":"000"
}


あなたjson_encode() と json_decode() がコンパイルおよび逆コンパイルのプロセスであることがわかります。json は utf-8 でエンコードされた文字のみを受け入れるため、json_encode() のパラメーターは utf-8 でエンコードされている必要があります。そうしないと、空の文字または null が返されます。

http://www.bkjia.com/PHPjc/325399.html

tru​​ehttp://www.bkjia.com/PHPjc/325399.html技術記事 1.json_decode() json_decode (PHP 5 = 5.2.0, PECL json = 1.2.0) json_decode — JSON 形式の文字列のエンコード命令mixed json_decode ( string $json [, bool $assoc ] ) Accept...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

この章では、CakePHP の環境変数、一般設定、データベース設定、電子メール設定について理解します。

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

CakePHP データベースの操作 CakePHP データベースの操作 Sep 10, 2024 pm 05:25 PM

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

See all articles