1. 程式人生 > >php解析、封裝JSON與XML

php解析、封裝JSON與XML

json數據 鞋子 ems cti lis 總結 小說 ffffff simple

比如阿裏、騰訊、百度在提供第三方服務的時候都是通過JSON或XML進行傳遞數據。在工作的時候和第三方公司對接的時候也是這兩種數據格式,所以在這總結一下這兩種格式的封裝和解析。

JSON的封裝和解析

封裝JSON數據

<?php
	$items = array(
  array(‘id‘=>1,‘name‘=>"衣服",‘parId‘=>0),
  array(‘id‘=>2,‘name‘=>"書籍",‘parId‘=>0),
  array(‘id‘=>3,‘name‘=>"T恤",‘parId‘=>1),
  array(‘id‘=>4,‘name‘=>"褲子",‘parId‘=>1),
  array(‘id‘=>5,‘name‘=>"鞋子",‘parId‘=>1),
  array(‘id‘=>6,‘name‘=>"皮鞋",‘parId‘=>5),
  array(‘id‘=>7,‘name‘=>"運動鞋",‘parId‘=>5),
  array(‘id‘=>8,‘name‘=>"耐克",‘parId‘=>7),
  array(‘id‘=>9,‘name‘=>"耐克",‘parId‘=>3),
  array(‘id‘=>10,‘name‘=>"鴻星爾克",‘parId‘=>7),
  array(‘id‘=>11,‘name‘=>"小說",‘parId‘=>2),
  array(‘id‘=>12,‘name‘=>"科幻小說",‘parId‘=>11),
  array(‘id‘=>13,‘name‘=>"古典名著",‘parId‘=>11),
  array(‘id‘=>14,‘name‘=>"文學",‘parId‘=>2),
  array(‘id‘=>15,‘name‘=>"四書五經",‘parId‘=>14)
);
	$message = json_encode($items,JSON_UNESCAPED_UNICODE);
	echo $message;
	

效果:

技術分享圖片

描述:第二參數是將中文不轉為UNICODE的編碼(JSON_UNESCAPED_UNICODE),默認轉換成UNICODE的編碼;

解析JSON數據

<?php
	$str = ‘[{"id":1,"name":"衣服","parId":0},{"id":2,"name":"書籍","parId":0},{"id":3,"name":"T恤","parId":1},{"id":4,"name":"褲子","parId":1},
{"id":5,"name":"鞋子","parId":1},{"id":6,"name":"皮鞋","parId":5},{"id":7,"name":"運動鞋","parId":5},{"id":8,"name":"耐克","parId":7},
{"id":9,"name":"耐克","parId":3},{"id":10,"name":"鴻星爾克","parId":7},{"id":11,"name":"小說","parId":2},{"id":12,"name":"科幻小說","parId":11},
{"id":13,"name":"古典名著","parId":11},{"id":14,"name":"文學","parId":2},{"id":15,"name":"四書五經","parId":14}]‘; $res = json_decode($str, true); var_dump($res);

效果:

技術分享圖片

描述:第二個參數是將數據轉換為數組的格式(true),默認是json對象的格式

XML的封裝和解析

封裝XML數據

<?php
	function data_to_xml($data) {
    $xml = ‘‘;
    foreach ($data as $key => $val) {
        if(is_numeric($key)) $key = "item id=\"$key\"";
        $xml    .=  "<$key>";
        $xml    .=  is_array($val) ? data_to_xml($val) : $val;
        list($key) = explode(‘ ‘, $key);
        $xml    .=  "</$key>";
    }
    return $xml;
}
	$items = array(
  array(‘id‘=>1,‘name‘=>"衣服",‘parId‘=>0),
  array(‘id‘=>2,‘name‘=>"書籍",‘parId‘=>0),
  array(‘id‘=>3,‘name‘=>"T恤",‘parId‘=>1),
  array(‘id‘=>4,‘name‘=>"褲子",‘parId‘=>1),
  array(‘id‘=>5,‘name‘=>"鞋子",‘parId‘=>1),
  array(‘id‘=>6,‘name‘=>"皮鞋",‘parId‘=>5),
  array(‘id‘=>7,‘name‘=>"運動鞋",‘parId‘=>5),
  array(‘id‘=>8,‘name‘=>"耐克",‘parId‘=>7),
  array(‘id‘=>9,‘name‘=>"耐克",‘parId‘=>3),
  array(‘id‘=>10,‘name‘=>"鴻星爾克",‘parId‘=>7),
  array(‘id‘=>11,‘name‘=>"小說",‘parId‘=>2),
  array(‘id‘=>12,‘name‘=>"科幻小說",‘parId‘=>11),
  array(‘id‘=>13,‘name‘=>"古典名著",‘parId‘=>11),
  array(‘id‘=>14,‘name‘=>"文學",‘parId‘=>2),
  array(‘id‘=>15,‘name‘=>"四書五經",‘parId‘=>14)
);
	$xml = ‘<root>‘;
	$xml .= data_to_xml($items);
	$xml .= ‘</root>‘;
	echo $xml; 
	
	

效果:

技術分享圖片

解析XML數據

<?php
	$str = ‘<root>
    <item id="0">
        <id>1</id>
        <name>衣服</name>
        <parId>0</parId>
    </item>
    <item id="1">
        <id>2</id>
        <name>書籍</name>
        <parId>0</parId>
    </item>
    <item id="2">
        <id>3</id>
        <name>T恤</name>
        <parId>1</parId>
    </item>
    <item id="3">
        <id>4</id>
        <name>褲子</name>
        <parId>1</parId>
    </item>
    <item id="4">
        <id>5</id>
        <name>鞋子</name>
        <parId>1</parId>
    </item>
    <item id="5">
        <id>6</id>
        <name>皮鞋</name>
        <parId>5</parId>
    </item>
    <item id="6">
        <id>7</id>
        <name>運動鞋</name>
        <parId>5</parId>
    </item>
    <item id="7">
        <id>8</id>
        <name>耐克</name>
        <parId>7</parId>
    </item>
    <item id="8">
        <id>9</id>
        <name>耐克</name>
        <parId>3</parId>
    </item>
    <item id="9">
        <id>10</id>
        <name>鴻星爾克</name>
        <parId>7</parId>
    </item>
    <item id="10">
        <id>11</id>
        <name>小說</name>
        <parId>2</parId>
    </item>
    <item id="11">
        <id>12</id>
        <name>科幻小說</name>
        <parId>11</parId>
    </item>
    <item id="12">
        <id>13</id>
        <name>古典名著</name>
        <parId>11</parId>
    </item>
    <item id="13">
        <id>14</id>
        <name>文學</name>
        <parId>2</parId>
    </item>
    <item id="14">
        <id>15</id>
        <name>四書五經</name>
        <parId>14</parId>
    </item>
</root>‘;
$xml =simplexml_load_string($str);
$xmljson= json_encode($xml);
$res=json_decode($xmljson,true);
var_dump($res);

效果:

技術分享圖片

php解析、封裝JSON與XML