天天看點

PHP基礎之解析json資料

個人認為,不論是java還是php,解析json都比解析xml簡單友善,下面記錄使用php解析json資料的例子:

先來一個簡單的,json資料隻包含普通的鍵值對,沒有數組的情況,下面是json.txt檔案的内容:

{
	"name" : "zhangsan",
	"age" : 21, 
	"sex" : "male"
}
           

解析的php代碼如下:

<?php
	$content = file_get_contents("json2.txt");
	$jsonObj = json_decode($content);
	$name = $jsonObj->name;
	$age = $jsonObj->age;
	$sex = $jsonObj->sex;
	echo "name = $name<br>";
	echo "age = $age<br>";
	echo "sex = $sex<br>";
?>
           

主要是用json_decode()函數,将json字元串解析成json對象,然後根據鍵取出值,在浏覽器中輸出為:

PHP基礎之解析json資料

下面看json資料中帶有數組的情況,json資料為:

{
    "name": "zhangsan",
    "age": 21,
    "sex": "male",
    "books": [
        {
            "name": "Chinese",
            "price": "50"
        },
        {
            "name": "History",
            "price": "60"
        },
        {
            "name": "Music",
            "price": "30"
        }
    ]
}
           

解析的php代碼也不複雜:

<?php
	$content = file_get_contents("json2.txt");
	$jsonObj = json_decode($content);
	$name = $jsonObj->name;
	$age = $jsonObj->age;
	$sex = $jsonObj->sex;
	echo "name = $name<br>";
	echo "age = $age<br>";
	echo "sex = $sex<br>";
	$arr = $jsonObj->books;
	$count = count($arr);
	for($i = 0; $i < $count; $i++){
		$obj = $arr[$i];
		$bookName = $obj->name;
		$bookPrice = $obj->price;
		echo "book name = $bookName, book price = $bookPrice<br>";
	}
?>
           

在浏覽器中的輸出為:

PHP基礎之解析json資料

跟之前解析xml比起來,感覺還是json資料容易解析得多。。。