ホームページ バックエンド開発 PHPチュートリアル json_PHP を使用した PHP チュートリアル

json_PHP を使用した PHP チュートリアル

Jul 13, 2016 pm 05:49 PM
javascript json php 使用 できる ベース 物体 意思 急行

JSONの基本
簡単に言うと、JSON は JavaScript オブジェクトで表される一連のデータを文字列に変換し、関数間で、または非同期アプリケーション ターミナル プログラムの Web クライアントからサーバーに簡単に渡すことができます。この文字列は少し奇妙に見えますが (後でいくつかの例を参照します)、JavaScript はこれを簡単に解釈し、JSON は名前と値のペアよりも複雑な構造を表現できます。たとえば、キーと値の単純なリストではなく、配列や複雑なオブジェクトを表現できます。
簡単なJSONの例
最も単純な形式では、名前と値のペアは次のように JSON で表すことができます:


この例は非常に基本的なもので、実際には同等のプレーン テキストの名前と値のペアよりも多くのスペースを占有します。

ただし、JSON は、複数の名前と値のペアを文字列化するときに真価を発揮します。まず、次のように、複数の名前と値のペアを含むレコードを作成できます:

構文的には、これは名前と値のペアに比べて大きな利点ではありませんが、この場合は JSON の方が使いやすく、読みやすいです。たとえば、上記の 3 つの値が同じレコードの一部であることが明らかになり、中括弧によって値が何らかの関連性を示します。
値の配列
JSON を使用すると、値のセットを表現する必要がある場合に読みやすさが向上し、複雑さが軽減されます。たとえば、人の名前のリストを表現したいとします。 XML では、多くの開始タグと終了タグが必要です。一般的な名前と値のペア (このシリーズの以前の記事で説明したものなど) を使用する場合は、独自のデータ形式を作成するか、キー名を person1 の形式に変更する必要があります。 -ファーストネーム。
JSON を使用する場合は、複数のレコードを中括弧でグループ化するだけです:

これを理解するのは難しくありません。この例では、people という変数が 1 つだけあり、その値は 3 つのエントリの配列であり、各エントリは名、姓、電子メール アドレスを含む個人のレコードです。上の例は、括弧を使用してレコードを単一の値に結合する方法を示しています。もちろん、複数の値 (それぞれに複数のレコードが含まれる) は同じ構文を使用して表現できます:

ここで最も注目すべき点は、複数の値を表現できることです。各値には複数の値が含まれています。ただし、レコード内の実際の名前と値のペアは、メイン エントリ (プログラマ、作成者、ミュージシャン) ごとに異なる場合があることにも注意してください。 JSON は完全に動的であるため、JSON 構造の途中でデータの表現方法を変更できます。
JSON 形式のデータを操作するときに従う必要がある事前定義された制約はありません。したがって、同じデータ構造内でデータの表現方法を変更することができ、同じものを異なる方法で表現することもできます。
JavaScript での JSON の使用
JSON 形式をマスターすれば、JavaScript での使用は簡単です。 JSON はネイティブ JavaScript 形式です。つまり、JavaScript での JSON データの処理には特別な API やツールキットは必要ありません。
JSON データを変数に代入する
たとえば、新しい JavaScript 変数を作成し、それに JSON 形式のデータ文字列を直接割り当てることができます:

これは非常に簡単です。先ほど見たように、データは JSON 形式で含まれます。ただし、データにアクセスする方法がまだ明らかになっていないため、これでは十分ではありません。
データにアクセスする
明らかではないかもしれませんが、上記の長い文字列は実際には単なる配列であり、JavaScript 変数に配置することでこの配列に簡単にアクセスできます。実際、配列要素を表すにはドット表記を使用するだけです。したがって、プログラマ リストの最初のエントリの姓にアクセスするには、JavaScript で次のようなコードを使用するだけです:

配列のインデックス付けはゼロベースであることに注意してください。したがって、このコード行は最初に people 変数のデータにアクセスし、次に、programmers というエントリに移動し、次に最初のレコード ([0]) に移動し、最後に lastName キーの値にアクセスします。結果は文字列値「McLaughlin」になります。
同じ変数を使用した例をいくつか示します。

このような構文を使用すると、追加の JavaScript ツールキットや API を使用せずに、JSON 形式のデータを処理できます。
JSONデータを変更する
ピリオドと括弧を使用してデータにアクセスできるのと同じように、データも同じ方法で簡単に変更できます。

文字列を JavaScript オブジェクトに変換した後、次のように変数内のデータを変更できます。
文字列に変換し直す
もちろん、オブジェクトをこの記事で説明したテキスト形式に簡単に変換できない場合、すべてのデータ変更はほとんど意味がありません。この変換も JavaScript では簡単です:


それで大丈夫ですよ!これで、Ajax アプリケーションのリクエスト文字列など、どこでも使用できるテキスト文字列が完成しました。 www.2cto.com
さらに、あらゆる JavaScript オブジェクトを JSON テキストに変換できます。元々 JSON 文字列が割り当てられていた変数を扱えるだけではありません。 myObject という名前のオブジェクトを変換するには、同じ形式のコマンドを実行するだけです:


これが、JSON とこのシリーズで説明する他のデータ形式の最大の違いです。 JSON を使用する場合、簡単な関数を呼び出すだけで、すぐに使用できるフォーマット済みのデータを取得できます。他のデータ形式の場合は、生データとフォーマット済みデータの間の変換が必要です。ドキュメント オブジェクト モデル (独自のデータ構造をテキストに変換する関数を提供する) のような API を使用する場合でも、API を学習し、ネイティブ JavaScript オブジェクトと構文を使用する代わりに API のオブジェクトを使用する必要があります。
要するに、大量の JavaScript オブジェクトを扱う場合、リクエストでサーバー側プログラムに送信できる形式にデータを簡単に変換できるように、JSON がほぼ確実に良い選択であるということです。
PHPでのJSONの応用
今日のインターネットでは、AJAX はもはや聞きなれない言葉ではありません。 AJAX といえば、RSS をきっかけに登場した XML がすぐに思い浮かぶかもしれません。特に PHP5 や、最も軽量な SimpleXML などの多数の XML パーサーの登場により、XML 解析はおそらく問題ではなくなりました。ただし、AJAX の場合、XML 解析はフロントエンド Javascript のサポートに重点を置いています。 XML を解析したことがある人なら誰でも、ツリーとノードに混乱すると思います。 XML が非常に優れたデータ保存方法であることは否定できませんが、その柔軟性により解析が困難になります。もちろん、ここで言及する難しさは、この記事の主役である JSON に関連したものです。
JSONとは何ですか?このコンセプトについては繰り返しません。平たく言えば、PHP のシリアル化された文字列のようなデータ ストレージ形式です。データの説明です。たとえば、配列をシリアル化して保存すると、簡単に逆シリアル化して適用できます。 JSON にも同じことが当てはまりますが、クライアント側の Javascript とサーバー側の PHP の間に対話型のブリッジが構築される点が異なります。 PHP を使用して JSON 文字列を生成し、この文字列をフロントエンド Javascript に渡すと、それを簡単に JSON に変換して適用できます。平たく言えば、実際には配列のように見えます。
身近なところでは、JSON の使用方法について説明します。 PHP5.2 には JSON のサポートが組み込まれています。もちろん、このバージョンより前のバージョンの場合は、市場に多数の PHP バージョンの実装があるので、必要なものを使用してください。ここでは主に、PHP の JSON 組み込みサポートについて説明します。非常にシンプルな 2 つの関数: json_encode と json_decode (シリアル化とよく似ています)。 1 つはエンコード用、もう 1 つはデコード用です。まずエンコーディングの使用方法を見てみましょう:


$arr = 配列(
'名前' => 'Linux',
'ニック' => 'php',
'連絡先' => 配列(
「メール」 => 「メール」、
'ウェブサイト' => http://blog.csdn.net/21aspnet,
)
);
$json_string = json_encode($arr);
エコー $json_string;
?>
配列を JSON 化するのは非常に簡単です。 UTF-8 以外のエンコードでは中国語の文字はエンコードできないため、gb2312 を使用して PHP コードを作成する場合は、iconv または mb を使用してコンテンツを変換する必要があることに注意してください。中国語から UTF-8、そして json_encode への変換はシリアル化に非常に似ていると言いましたが、まだ信じられていません。エンコード後、デコードする必要があります。PHP には、対応する関数 json_decode が用意されています。 json_decode を実行すると、次のような操作が行われます。

$arr = 配列(
'名前' => 'Linux',
'ニック' => 'php',
'連絡先' => 配列(
「メール」 => 「メール」、
'ウェブサイト' => http://blog.csdn.net/21aspnet,
)
);
$json_string = json_encode($arr);
$obj = json_decode($json_string);
print_r($obj);
?>
オブジェクト内のプロパティにアクセスすることはできますか? $obj->name このように、もちろん、簡単に呼び出すために配列に変換することもできます:

$json_string = json_encode($arr);
$obj = json_decode($json_string);
$arr = (配列) $obj;
print_r($arr);
PHP はキャッシュの生成以外に、配列を直接保存したほうが便利な気がしますが、これを Javascript で使用する方法を見てみましょう。 . セグメント文字。
上記では、この文字列を変数に直接代入するとJavaScriptの配列になります(専門用語では配列と呼ぶべきではありませんが、PHPの習慣上、わかりやすくするために常に配列と呼びます)。このようにして、arr を簡単にトラバースしたり、やりたいことを何でも行うことができます。 AJAX についてはまだ触れていませんね。そうですね、考えてみてください。サーバーから返された responseText が XML ではなく JSON 文字列を使用している場合、フロントエンド Javascript がそれを処理するのに非常に便利ではないでしょうか。犬の絆創膏の使い方はこんな感じです。
実際、これを書いている時点では、データの保存形式が異なることを除けば、JSON と XML の間に大きな違いはありませんが、1 点だけ以下に言及します。これは XML とはほとんど関係がありませんが、JSON のより広範なアプリケーション、つまりクロスドメイン データ呼び出しを示すことができます。セキュリティの問題により、AJAX はクロスドメイン呼び出しをサポートしていません。異なるドメイン名でデータを呼び出すことは非常に面倒ですが、解決策はあります (Stone の講義でプロキシについて言及しましたが、私には理解できません)。解決されます)。 2 つのファイルを作成しましたが、これらはクロスドメイン呼び出しを示すのに十分です。
メインファイルindex.html
<スクリプトタイプ="text/javascript">
関数 getProfile(str) {
var arr = str;
document.getElementById('nick').innerHTML = arr.nick;
}



調整されたファイル profile.php
$arr = 配列(
'名前' => 'Linux',
'ニック' => 'php',
'連絡先' => 配列(
「メール」 => 「メール」、
'ウェブサイト' => http://blog.csdn.net/21aspnet,
)
);
$json_string = json_encode($arr);
echo "getProfile($json_string)";
?>
明らかに、index.html が profile.php を呼び出すと、JSON 文字列が生成され、パラメータとして getProfile に渡され、ニックネームが div に挿入されます。このようにして、クロスドメイン データのやり取りは完了します。特に簡単ですか? JSON は非常にシンプルで使いやすいので、何を期待しているでしょうか? ^_^


劉海荘さんのコラムより抜粋
ズズ

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/478336.html技術記事 JSON の基本 簡単に言えば、JSON は JavaScript オブジェクトで表されるデータのセットを文字列に変換し、関数間で、または非同期的に簡単に渡すことができます...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

PHPとPython:2つの一般的なプログラミング言語を比較します PHPとPython:2つの一般的なプログラミング言語を比較します Apr 14, 2025 am 12:13 AM

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHP:Web開発の重要な言語 PHP:Web開発の重要な言語 Apr 13, 2025 am 12:08 AM

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

アクション中のPHP:実際の例とアプリケーション アクション中のPHP:実際の例とアプリケーション Apr 14, 2025 am 12:19 AM

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHP対Python:違いを理解します PHP対Python:違いを理解します Apr 11, 2025 am 12:15 AM

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

PHPの永続的な関連性:それはまだ生きていますか? PHPの永続的な関連性:それはまだ生きていますか? Apr 14, 2025 am 12:12 AM

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。

PHPおよびPython:コードの例と比較 PHPおよびPython:コードの例と比較 Apr 15, 2025 am 12:07 AM

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

PHP対その他の言語:比較 PHP対その他の言語:比較 Apr 13, 2025 am 12:19 AM

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHPおよびPython:さまざまなパラダイムが説明されています PHPおよびPython:さまざまなパラダイムが説明されています Apr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

See all articles