個人認為,不論是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對象,然後根據鍵取出值,在浏覽器中輸出為:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2QvwVe0lmdhJ3ZvwFM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2Lc1TVq10M4EjYpZFWlZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39TM0kDMzgDM2EDMxQDM1EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
下面看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>";
}
?>
在浏覽器中的輸出為:
跟之前解析xml比起來,感覺還是json資料容易解析得多。。。