php解析、封裝JSON與XML
阿新 • • 發佈:2018-07-24
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