php直接输出json格式,很多新手有一个误区,以为用echo json_encode($data);这样就是输出json数据了,没错这样输出文本是json格式文本而不是json数据,正确的写法是应该加一句,我们要在利用Content-type:text/json才可以正常显示是json数据.
PHP实例代码如下:
<?php header('Content-type:text/json');//这句是重点,它告诉接收数据的对象此页面输出的是json数据; $json={"n":"name","p":"password"};//虽然这行数据形式上是json格式,如果没有上面那句的话,它是不会被当做json格式的数据被处理的; echo $json; ?>
json_encode当然也可以输入json字符串了,下面看几个例子.
PHP生成JSON的函数是:json_encode($PHPcode);
PHP解析JSON的函数是:json_decode($JSONcode);
所以JSON的形式有多种,不同的形式在PHP解释出来后的形式也是不同的.
形式1:完全是对象的形式,这种形式的数据在Javascript中又叫相关数组,与一般数组不同的是,它可以通过字符串作索引来访问(用"[]"或"."来表示层级),代码如下:
$json='{"item1":{"item11":{"n":"chenling","m":"llll"},"sex":"www.phprm.com","age":"25"},"item2":{"item21":"ling","sex":"女","age":"24"}}'; $J=json_decode($json); print_r($J); /*将输出: stdClass Object ( [item1] => stdClass Object ( [item11] => stdClass Object ( [n] => chenling [m] => llll ) [sex] => www.phprm.com [age] => 25 ) [item2] => stdClass Object ( [item21] => ling [sex] => 女 [age] => 24 ) )*/
比如说我要取得了值是chenling的那个属性,则应该这样访问:
$J->item1->item11->n;//这将取得属性n的值:chenling
其实这种访问形式跟访问普通的对象属性差不多,也相当于访问一个3维数组.
形式2:对象和数组混合,代码如下:
$json='{"item1":[{"name":[{"chen":"chenling","ling":"chenli"}],"sex":"男","age":"25"},{"name":"sun","sex":"女","age":"24"}]}'; $J=json_decode($json); print_r($J); /*将输出: stdClass Object ( [item1] => Array ( [0] => stdClass Object ( [name] => Array ( [0] => stdClass Object ( [chen] => chenling [ling] => chenli ) ) [sex] => 男 [age] => 25 ) [1] => stdClass Object ( [name] => sun [sex] => 女 [age] => 24 ) ) )*/
比如说我要取得了值是chenling的那个元素,则应该这样访问:
$J->item1[0]->name[0]->chen;//这将取得元素chen的值:chenling
其实这种访问形式结合了对象和数组的访问方式,也相当于访问一个5维数组.
形式3:完全数组形式,代码如下:
$json='[["item1","item11"],["n","chenling"],["m","llll"]]'; $J=json_decode($json); print_r($J); /*将输出: Array ( [0] => Array ( [0] => item1 [1] => item11 ) [1] => Array ( [0] => n [1] => chenling ) [2] => Array ( [0] => m [1] => llll ) )*/
比如说我要取得了值是chenling的那个元素,则应该这样访问:
$J[0][1];//这将取得元素值chenling的那个元素
但是用这种方式有一个缺点,就是无法用字符串作为索引,只能用数字,用完全对象的形式可以解决这个问题.其实这种访问形式就是数组的访问方式,相当于访问一个2维数组.
小结:从上面的例子可以看出JSON有点类似XML,也可以在PHP和Javascript之间传递带结构的数据,使用起来很方便.
文章链接:
随便收藏,请保留本文地址!

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

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

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ホットトピック









