PHPで空の配列をJSONオブジェクトに変換する方法

藏色散人
リリース: 2023-03-09 10:10:02
オリジナル
2905 人が閲覧しました

空の配列を json オブジェクトに変換する php メソッド: 1. "JSON_FORCE_OBJECT" を使用して json オブジェクトを変換します; 2. データ型変換を使用して空の配列を json オブジェクトに変換します; 3. ArrayObject を使用して空の配列をjsonオブジェクト。

PHPで空の配列をJSONオブジェクトに変換する方法

この記事の動作環境: Windows 7 システム、PHP バージョン 7.1、DELL G3 コンピューター

PHP json_encode は空の配列を変換しますオブジェクトへ

問題の説明:

php は、PC、Android、ios などのクライアントにインターフェイスを提供します。json 形式のデータが返される場合, 返されるデータが配列でキーが文字列の場合、json化後にjsonObjectが返されますが、空の配列の場合はjsonArrayが返される可能性があり、データ構造の不一致により最終的にjsonの解析が失敗します。

例:

$arr = [ 'id' => 123., 'name' => 'andrew' , ]; $jsonRet = json_encode( $arr ); print_r( $jsonRet );
ログイン後にコピー

出力:

{ "id": 123, "name": "andrew" }
ログイン後にコピー

ただし、次の場合:

$arr = []; $jsonRet = json_encode($arr); print_r($jsonRet);
ログイン後にコピー

出力:

[ ]
ログイン後にコピー

配列は空です JsonObjectでもありますか?

方法 1:

JSON_FORCE_OBJECT を使用する

$arr = []; $jsonRet = json_encode($arr, JSON_FORCE_OBJECT); print_r($jsonRet);
ログイン後にコピー

この方法には欠点があります。例:

$arr = [ 'jsonArray' => [ '21', '12', '13' ], 'jsonObject' => [] ]; $jsonRet = json_encode($arr,JSON_FORCE_OBJECT); print_r($jsonRet);
ログイン後にコピー

出力:

{ "jsonArray": { "0": "21", "1": "12", "2": "13" }, "jsonObject": { } }
ログイン後にコピー

元の jsonArray も jsonObjectified されており、ローカルの変更はグローバルに影響を与えることはできません

メソッド 2

データ型変換を使用します

$bar = array(); $foo = (object)$bar; echo json_encode($foo);
ログイン後にコピー

方法 3 (推奨)

ArrayObject を使用する

$arr = [ 'jsonArray' => [ '21', '12', '13' ], 'jsonObject' => new \ArrayObject() ]; $jsonRet = json_encode($arr); print_r($jsonRet);
ログイン後にコピー

出力:

{ "jsonArray": [ "21", "12", "13" ], "jsonObject": { } }
ログイン後にコピー

[推奨学習:PHP ビデオ チュートリアル]

以上がPHPで空の配列をJSONオブジェクトに変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!