php解析、封装JSON与XML

比如阿里、腾讯、百度在提供第三方服务的时候都是通过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);

效果:

原文地址:https://www.cnblogs.com/meichao/p/9356028.html

时间: 2024-08-26 17:40:16

php解析、封装JSON与XML的相关文章

Unity中场景解析成Json和XML并还原场景

其实关于这部分内容,雨松研究院已经写得很清楚了,也比较权威,链接在此:http://www.xuanyusong.com/archives/1919,但是现在还是想根据自己的思路整理一下 其实原理就是讲Hierarchy中所有的父物体(即transform.parent == null)都做成预设,然后记录下每个父物体的Transform里的属性,记录到Xml或者Json文件中,然后再解析文件,把其中的预设加载到新场景里,就会得到与原场景一模一样的场景了 首先在Project里新建一个Edito

iOS-数据持久化基础-JSON与XML数据解析

解析的基本概念 所谓“解析”:从事先规定好的格式串中提取数据 解析的前提:提前约定好格式.数据提供方按照格式提供数据.数据获取方按照格式获取数据 iOS开发常见的解析:XML解析.JSON解析 一.XML数据结构 解析的基本概念 所谓“解析”:从事先规定好的格式串中提取数据 解析的前提:提前约定好格式.数据提供方按照格式提供数据.数据获取方按照格式获取数据 iOS开发常见的解析:XML解析.JSON解析 XML数据结构 XML解析SAX?方式解析从上往下,?一点?一点读取性能好苹果推荐使?用DO

iOS网络编程开发—JSON和XML数据解析

iOS网络编程开发—JSON解析 一.什么是JSON JSON是一种轻量级的数据格式,一般用于数据交互 服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除外) JSON的格式很像OC中的字典和数组 {"name" : "jack", "age" : 10} {"names" : ["jack", "rose", "jim"]} 标准JSON格式的

json和xml封装数据、数据缓存到文件中

一.APP的通信格式之xml xml:扩展标记语言,可以用来标记数据,定义数据类型,是一种允许用户对自己标记语言进行定义的源语言.XML格式统一,扩平台语言,非常适合数据传输和通信,业界公认的标准. 支持操作系统:windows.linux 支持语言:python.php.java 二.APP的通信格式之json JSON是一种轻量级的数据交换语言,以文字为基础,且易于让人阅读,同时也方便了机器进行解析和生成. JSON简单的说是javascript中的对象和数组,所以这两种结构就是对象和数组两

Json和XML解析

NSXMLParse 关于XML,有两种解析方式,分别是SAX(Simple API for XML,基于事件驱动的解析方式,逐行解析数据,采用协议回调机制)和DOM(Document Object Model ,文档对象模型.解析时需要将XML文件整体读入,并且将XML结构化成树状,使用时再通过树状结构读取相关数据,查找特定节点,然后对节点进行读或写).苹果官方原生的NSXMLParse类库采用第一种方式,即SAX方式解析XML,它基于事件通知的模式,一边读取文档一边解析数据,不用等待文档全部

iOS开发——网络Swift篇&amp;JSON与XML数据解析

JSON与XML数据解析 JSON数据解析(内置NSJSONSerialization与第三方JSONKit) 一,使用自带的NSJSONSerialization 苹果从IOS5.0后推出了SDK自带的JSON解决方案NSJSONSerialization,这是一个非常好用的JSON生成和解析工具,效率也比其他第三方开源项目高. NSJSONSerialization能将JSON转换成Foundation对象,也能将Foundation对象转换成JSON,但转换成JSON的对象必须具有如下属性

iOS - - JSON 和 XML解析

JSON 和 XML 一.JSON 1.什么是JSON JSON是一种轻量级的数据格式,一般用于数据交互 服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除外) 2.JSON的格式很像OC中的字典和数组 {"name" : "jack", "age" : 10} {"names" : ["jack", "rose", "jim"]} 标准JSON

.net Json和Xml解析

引言    Json和Xml是现在跨平台传输数据的主流格式,关于它们的解析,网上资料很多,我稍作整理,写成一个小demo,方便日后使用. JSON解析     能进行json解析的类库有很多,例如JavaScriptSerializer,DataContractJsonSerializer和开源类库Newtonsoft.Json.这里使用Newtonsoft.Json作个演示. 1.定义示例的类 public class Data { public string Name { get; set;

NSURLSession(Get &amp; Post,JSON、XML数据解析,文件上传下载)

NSURLSession(Get & Post,JSON.XML数据解析,文件上传下载) 一.NSURLSession概述 NSURLSession是iOS7中新的网络接口,支持后台网络操作,除非用户强行关闭. NSURLSession使用步骤: 1. 新建NSURLSessionConfiguration,用于NSURLSession的配置 2. 新建NSURLSession 3. 新建NSURLSessionTask对象 4. 执行task 其中NSURLSessionConfigurati