検索
ホームページバックエンド開発PHPチュートリアルJSON形式データを処理するPHPの古典的なケースのまとめ、JSONクラシックケース_PHPチュートリアル

phpでjson形式のデータを処理する、jsonの古典的な事例まとめ

この記事では、phpでjson形式のデータを処理する方法をまとめています。参考のために皆さんと共有してください。詳細は次のとおりです:

1.jsonの紹介:

jsonとは何ですか?

簡単に言うと、JSON は JavaScript オブジェクトで表されるデータのセットを文字列に変換し、関数間で、または Web クライアントからサーバー側のプログラムに簡単に渡すことができます。

平たく言えば、PHP のシリアル化された文字列のようなデータ ストレージ形式です。

これは一種のデータ記述でもあります。たとえば、配列をシリアル化して保存すると、同じことが json にも当てはまりますが、クライアント側の JavaScript との間の対話のためのブリッジが構築されます。サーバーサイドのphp。

jsonの使い方

php5.2 以降のバージョンには json サポートが組み込まれているため、2 つの主要な関数があります:

json_encode(): エンコーディング、json 文字列を生成します
json_decode(): デコード

注: json_encode() 関数でエンコードした後、次のような json 形式の文字列が返されます: $json = '{"a":1,"b":2,"c":3," d" :4,"e":5}'; 文字列をjson形式で出力すると、json形式のjavascriptオブジェクトが得られます

2.json ケース 1:

json_encodeの使用法:

リーリー

結果:

リーリー

ヒント:出力データ自体はjson形式のjsオブジェクトであるため、フロントページで直接jsonオブジェクトとして使用できます

概要: 連想配列はJavaScriptオブジェクトに従って構築されます

分析: 上記のケースは配列の単純な json 化です。非 utf-8 エンコードでは中国語の文字はエンコードされず、結果は null 値になるため、gb2312 エンコードを使用すると注意が必要です。 PHP コードを記述するには、iconv または mb シリーズ関数を使用して中国語を含むコンテンツを utf-8 に変換し、json_encode で使用する必要があります

3.json ケース 2:

json_decodeの使用法:

リーリー

結果:

リーリー

概要: 連想配列はJavaScriptオブジェクトに従って構築されます

ヒント:出力データ自体はjson形式のjsオブジェクトであるため、フロントページで直接jsonオブジェクトとして使用できます

分析: エンコード後、デコードする必要があります。PHP は、対応する関数 json_decode を提供します。この関数を実行すると、オブジェクトまたは配列が取得されます。

4.json ケース 3:

フロントデスクと対話するとき、jsonの役割が表示されます:

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

リーリー

コード分析: 上記のコードは、json形式のデータを変数に直接代入し、それがJavaScriptオブジェクトになるため、objを簡単にトラバースできます

ヒント: JavaScript では、配列へのアクセスはインデックスを通じて行われ、オブジェクト属性へのアクセスはオブジェクト名.プロパティ名を通じて行われます

ヒント:出力データ自体はjson形式のjsオブジェクトであるため、フロントページで直接jsonオブジェクトとして使用できます

5.json ケース 4: json クロスドメイン データ呼び出し:

例: メインファイルindex.html

リーリー

例: profile.phpというファイル

リーリー

コード分析:index.html が profile.php を呼び出すと、json 文字列が生成され、パラメータとして getProfile に渡され、ニックネームが div に挿入されます。このようにして、クロスドメイン データ インタラクションが完了します。

6. js はサーバーから返された json 文字列をどのように解析しますか?

jQuery などのフレームワークが適用できないことを前提として、クライアントとサーバー間の対話に ajax を使用する場合、一般的なアプローチは、サーバーに json 文字列を返し、それをクライアントで JavaScript オブジェクトに解析することです。 。解析時に使用されるメソッドは一般的に eval または new function であり、現在 ie8 と firefox3.1 にはネイティブ json オブジェクトが組み込まれています。

例 1:

リーリー

例 2:

リーリー

7. ケース 5: オブジェクトの JSON 化

リーリー

ブラウザ出力:

リーリー

結論: オブジェクトの json 文字列は、JavaScript オブジェクトに従って構築されます。中国語を認識できません。中国語の文字列はすべて正しく表示されません

分析: 上記のケースは、配列の単純な json 化です。非 utf-8 エンコードでは、中国語の文字はエンコードされず、結果は null 値になることに注意してください。 gb2312 エンコードを使用して PHP コードを記述する場合は、iconv または mb シリーズ関数を使用して中国語を含むコンテンツを utf-8 に変換し、json_encode で使用する必要があります

ヒント:出力データ自体はjson形式のjsオブジェクトであるため、フロントページで直接jsonオブジェクトとして使用できます

8. ケース 6: インデックス配列の JSON 化

リーリー

ブラウザ出力:

[
  1,
  "heiyeluren",
  "\u7537"
]

结论:纯数字索引数组的json字符串是按照javascript能够识别的数组来存储的,而不是按照javascript能够识别的对象来存储的。无法识别中文,所有的中文字符串没有被正确显示出来

分析:上述案例很简单的将一个数组json化了,需要指出的是在非utf-8编码下,中文字符将不可被encode,结果会出来空值,所以如果你使用gb2312编码编写php代码,那么就需要将包含中文的内容使用iconv或mb系列函数转化为utf-8后在json_encode

9.案例七:关联数组的json化

<&#63;php
$arr2 = array("id"=>1, "name"=>'heiyeluren', "gender"=>'男');
echo json_encode($arr2)."<br /> ";
&#63;>

浏览器输出结果:

{
  "id":1,
  "name":"heiyeluren",
  "gender":"\u7537"
}

结论:关联索引数组的json字符串是按照javascript对象的形式来构造的。无法识别中文,所有的中文字符串没有被正确显示出来

分析:上述案例很简单的将一个数组json化了,需要指出的是在非utf-8编码下,中文字符将不可被encode,结果会出来空值,所以如果你使用gb2312编码编写php代码,那么就需要将包含中文的内容使用iconv或mb系列函数转化为utf-8后在json_encode

提示:输出的数据本身就是json格式的js对象,因为没有带引号,所以在前台页面可以直接将其当做json对象使用

10.案例八:对多维索引数组的进行json化

<&#63;php
$arr3 = array(array(1, 'heiyeluren', '男'), array(1, 'heiyeluren', '男'));
echo json_encode($arr3)."<br /> ";&#63;>

浏览器输出结果:

[
  [1,"heiyeluren","\u7537"],
  [1,"heiyeluren","\u7537"]
]

结论:多维数字索引数组的json字符串是按照javascript能够识别的数组来存储的。无法识别中文,所有的中文字符串没有被正确显示出来

分析:上述案例很简单的将一个数组json化了,需要指出的是在非utf-8编码下,中文字符将不可被encode,结果会出来空值,所以如果你使用gb2312编码编写php代码,那么就需要将包含中文的内容使用iconv或mb系列函数转化为utf-8后在json_encode

提示:输出的数据可以直接将其当做javascript数组使用

11.案例九:对多维关联数组的进行json化

<&#63;php
$arr4 = array(
  array("id"=>1, "name"=>'heiyeluren', "gender"=>'男'),
  array("id"=>1, "name"=>'heiyeluren', "gender"=>'男')
);
echo json_encode($arr4)."<br /> ";
&#63;>

浏览器输出结果:

[
  {"id":1,"name":"heiyeluren","gender":"\u7537"},
  {"id":1,"name":"heiyeluren","gender":"\u7537"}
]

结论:多维关联索引数组是按照外围是JavaScript数组,中间的索引数组是对象。无法识别中文,所有的中文字符串没有被正确显示出来

分析:上述案例很简单的将一个数组json化了,需要指出的是在非utf-8编码下,中文字符将不可被encode,结果会出来空值,所以如果你使用gb2312编码编写php代码,那么就需要将包含中文的内容使用iconv或mb系列函数转化为utf-8后在json_encode

提示:输出的数据可以直接将其当做javascript数组使用

12.案例十:json格式的javascript对象的创建

json的格式与语法:

var jsonobject=
{
    //对象内的属性语法(属性名与属性值是成对出现的)
    propertyname:value,
    //对象内的函数语法(函数名与函数内容是成对出现的)
    functionname:function(){...;}
};

注意:

①jsonobject -- JSON对象名称
②propertyname -- 属性名称
③functionname -- 函数名称
④一对大括号,括起多个"名称/值"的集合
⑤属性名或函数名可以是任意字符串,甚至是空字符串
⑥逗号用于隔开每对"名称/值"对

提示:

①在javascript中,数组的访问是通过索引来访问的; 对象属性的访问是通过 对象名.属性名  来访问的
②经过json_encode()化而的数据都是js能够识别的格式,而经过json_decode()化的数据都是php能够识别的格式,这一点大家心里要清楚
③经过json_encode()化而输出的数据都是json格式的javascript对象,在前台可直接将其当做js对象使用

另外,本站还提供了如下格式化与转换工具方便大家使用:

php代码在线格式化美化工具:
http://tools.jb51.net/code/phpformat

在线XML/JSON互相转换工具:
http://tools.jb51.net/code/xmljson

JavaScript代码美化/压缩/格式化/加密工具:
http://tools.jb51.net/code/jscompress

在线XML格式化/压缩工具:
http://tools.jb51.net/code/xmlformat

さらに PHP 関連のコンテンツに興味のある読者は、このサイトの特別トピック「PHP における json 形式のデータ操作スキルのまとめ」、「php ファイル操作のまとめ」、「PHP の操作とオペレーターの使用方法のまとめ」をチェックしてください。 、「PHP ネットワーク プログラミング スキルの概要」、「PHP 基本構文の入門チュートリアル」、「PHP Office ドキュメント スキルの概要 (Word、Excel、Access、PPT を含む)」、「PHP の日付と時刻の使用方法の概要」、「はじめに」 PHPオブジェクト指向プログラミングチュートリアル』『PHP文字列(ストリング)使い方まとめ』『php+mysqlデータベース操作入門チュートリアル』『php共通データベース操作スキルまとめ』

この記事が PHP プログラミングのすべての人に役立つことを願っています。

www.bkjia.com本当http://www.bkjia.com/PHPjc/1127842.html技術記事 PHPでjson形式のデータを処理する典型的な事例まとめ JSONの典型的な事例 PHPでjson形式のデータを処理する方法をまとめた記事です。参考のために皆さんと共有してください。詳細は次のとおりです: 1. json の紹介...
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPセッションを失敗させる可能性のあるいくつかの一般的な問題は何ですか?PHPセッションを失敗させる可能性のあるいくつかの一般的な問題は何ですか?Apr 25, 2025 am 12:16 AM

PHPSESSIONの障害の理由には、構成エラー、Cookieの問題、セッションの有効期限が含まれます。 1。構成エラー:正しいセッションをチェックして設定します。save_path。 2.Cookieの問題:Cookieが正しく設定されていることを確認してください。 3.セッションの有効期限:セッションを調整してください。GC_MAXLIFETIME値はセッション時間を延長します。

PHPでセッション関連の問題をどのようにデバッグしますか?PHPでセッション関連の問題をどのようにデバッグしますか?Apr 25, 2025 am 12:12 AM

PHPでセッションの問題をデバッグする方法は次のとおりです。1。セッションが正しく開始されるかどうかを確認します。 2.セッションIDの配信を確認します。 3.セッションデータのストレージと読み取りを確認します。 4.サーバーの構成を確認します。セッションIDとデータを出力し、セッションファイルのコンテンツを表示するなど、セッション関連の問題を効果的に診断して解決できます。

session_start()が複数回呼び出されるとどうなりますか?session_start()が複数回呼び出されるとどうなりますか?Apr 25, 2025 am 12:06 AM

session_start()への複数の呼び出しにより、警告メッセージと可能なデータ上書きが行われます。 1)PHPは警告を発し、セッションが開始されたことを促します。 2)セッションデータの予期しない上書きを引き起こす可能性があります。 3)session_status()を使用してセッションステータスを確認して、繰り返しの呼び出しを避けます。

PHPでセッションのライフタイムをどのように構成しますか?PHPでセッションのライフタイムをどのように構成しますか?Apr 25, 2025 am 12:05 AM

PHPでのセッションライフサイクルの構成は、session.gc_maxlifetimeとsession.cookie_lifetimeを設定することで達成できます。 1)session.gc_maxlifetimeサーバー側のセッションデータのサバイバル時間を制御します。 0に設定すると、ブラウザが閉じているとCookieが期限切れになります。

セッションを保存するためにデータベースを使用することの利点は何ですか?セッションを保存するためにデータベースを使用することの利点は何ですか?Apr 24, 2025 am 12:16 AM

データベースストレージセッションを使用することの主な利点には、持続性、スケーラビリティ、セキュリティが含まれます。 1。永続性:サーバーが再起動しても、セッションデータは変更されないままになります。 2。スケーラビリティ:分散システムに適用され、セッションデータが複数のサーバー間で同期されるようにします。 3。セキュリティ:データベースは、機密情報を保護するための暗号化されたストレージを提供します。

PHPでカスタムセッション処理をどのように実装しますか?PHPでカスタムセッション処理をどのように実装しますか?Apr 24, 2025 am 12:16 AM

PHPでのカスタムセッション処理の実装は、SessionHandlerInterfaceインターフェイスを実装することで実行できます。具体的な手順には、次のものが含まれます。1)CussentsessionHandlerなどのSessionHandlerInterfaceを実装するクラスの作成。 2)セッションデータのライフサイクルとストレージ方法を定義するためのインターフェイス(オープン、クローズ、読み取り、書き込み、破壊、GCなど)の書き換え方法。 3)PHPスクリプトでカスタムセッションプロセッサを登録し、セッションを開始します。これにより、データをMySQLやRedisなどのメディアに保存して、パフォーマンス、セキュリティ、スケーラビリティを改善できます。

セッションIDとは何ですか?セッションIDとは何ですか?Apr 24, 2025 am 12:13 AM

SessionIDは、ユーザーセッションのステータスを追跡するためにWebアプリケーションで使用されるメカニズムです。 1.ユーザーとサーバー間の複数のインタラクション中にユーザーのID情報を維持するために使用されるランダムに生成された文字列です。 2。サーバーは、ユーザーの複数のリクエストでこれらの要求を識別および関連付けるのに役立つCookieまたはURLパラメーターを介してクライアントに生成および送信します。 3.生成は通常、ランダムアルゴリズムを使用して、一意性と予測不可能性を確保します。 4.実際の開発では、Redisなどのメモリ内データベースを使用してセッションデータを保存してパフォーマンスとセキュリティを改善できます。

ステートレス環境(APIなど)でセッションをどのように処理しますか?ステートレス環境(APIなど)でセッションをどのように処理しますか?Apr 24, 2025 am 12:12 AM

APIなどのステートレス環境でのセッションの管理は、JWTまたはCookieを使用して達成できます。 1。JWTは、無国籍とスケーラビリティに適していますが、ビッグデータに関してはサイズが大きいです。 2.cookiesはより伝統的で実装が簡単ですが、セキュリティを確保するために慎重に構成する必要があります。

See all articles

ホット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 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 英語版

SublimeText3 英語版

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

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

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

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター