ホームページ > バックエンド開発 > PHPの問題 > PHP が JSON データを解析する方法

PHP が JSON データを解析する方法

PHPz
リリース: 2023-04-20 10:23:39
オリジナル
2993 人が閲覧しました

JSON (JavaScript Object Notation) は軽量のデータ交換形式です。人間が判読できるテキストを使用して、データ オブジェクトを転送および保存します。 XML とは異なり、JSON は解析と処理が容易なため、Web アプリケーションとサーバー間でデータを転送および交換するときによく使用されます。

PHP では、組み込みの json_decode 関数を使用して、JSON 文字列を PHP オブジェクトに変換できます。たとえば、次の例では、JSON 文字列を PHP オブジェクトに解析します。

<?php
$json_string = &#39;{"name":"John", "age":30, "city":"New York"}&#39;;
 
$obj = json_decode($json_string);
 
echo $obj->name; //输出 John
echo $obj->age; //输出 30
echo $obj->city; //输出 New York
?>
ログイン後にコピー

この関数は、解析対象の JSON 文字列と、解析された JSON オブジェクトを PHP オブジェクトに変換することを示すブール変数 (デフォルトは false) または連想配列 (true) です。

ただし、JSON データにオブジェクトの配列またはオブジェクトの配列が含まれている場合は、再帰関数を使用して処理する必要があります。 JSON データにネストされたオブジェクト配列とオブジェクト配列が含まれる例を次に示します。

{
    "employees": [
        {
            "name": "John Doe",
            "email": "john@example.com",
            "phones": [
                {
                    "type": "home",
                    "number": "555-555-1234"
                },
                {
                    "type": "work",
                    "number": "555-555-5678"
                }
            ]
        },
        {
            "name": "Jane Smith",
            "email": "jane@example.com",
            "phones": [
                {
                    "type": "home",
                    "number": "555-555-4321"
                },
                {
                    "type": "work",
                    "number": "555-555-8765"
                }
            ]
        }
    ]
}
ログイン後にコピー

このようなデータを解析するには、JSON オブジェクト全体を反復処理して PHP オブジェクトまたは配列に変換する再帰関数を作成できます。 。 JSON オブジェクト配列、オブジェクト配列、および標準 JSON オブジェクトを処理する関数の例を次に示します。

 $value) {
        if (is_object($value)) {
            $result[$key] = json_to_array($value);
        } else if (is_array($value)) {
            $result[$key] = [];
 
            foreach ($value as $item) {
                $result[$key][] = json_to_array($item);
            }
        } else {
            $result[$key] = $value;
        }
    }
 
    return $result;
}
 
$json_string = '{
    "employees": [
        {
            "name": "John Doe",
            "email": "john@example.com",
            "phones": [
                {
                    "type": "home",
                    "number": "555-555-1234"
                },
                {
                    "type": "work",
                    "number": "555-555-5678"
                }
            ]
        },
        {
            "name": "Jane Smith",
            "email": "jane@example.com",
            "phones": [
                {
                    "type": "home",
                    "number": "555-555-4321"
                },
                {
                    "type": "work",
                    "number": "555-555-8765"
                }
            ]
        }
    ]
}';
 
$obj = json_decode($json_string);
$array = json_to_array($obj);
 
print_r($array);
?>
ログイン後にコピー

この関数は、すべてのネストされたオブジェクト配列およびオブジェクトの JSON データを含む PHP 配列を返します。

以上がPHP が JSON データを解析する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート