PHP接口开发XML/JSON数据通信类

总体类

<?php
class Response{
	const JSON=‘json‘;

?>

Json数据处理

/**
	*json format data
	*@param integer $code status code
	*@param string  $message message data
	*@param array   $data
	*return string
	*/
	public static function jsonEncode($code,$message=‘‘,$data=array()){
		if (!is_numeric($code)) {
			return ‘‘;
		}
		$result=array(
			‘code‘=>$code,
			‘message‘=>$message,
			‘data‘=>$data
		);

		echo json_encode($result);
		exit();
	}

XML数据处理


/**
	*xml format data
	*@param integer $code status code
	*@param string  $message message data
	*@param arrat   $data
	*return string
	*/
	public static function xmlEncode($code,$message,$data=array()){
		if (!is_numeric($code)) {
			return ‘‘;
		}
		$result=array(
			‘code‘=>$code,
			‘message‘=>$message,
			‘data‘=>$data
		);

		header("Content-Type:text/xml");
		$xml="<?xml version=‘1.0‘ encoding=‘UTF-8‘?>\n";
		$xml.="<root>\n";
		$xml.=self::xmlToEncode($result);
		$xml.="</root>";

		echo $xml;
	}
public static function xmlToEncode($data){
		$xml="";
		$attr="";
		foreach ($data as $key => $value) {
			if (is_numeric($key)) {
				$attr=" id=‘{$key}‘";
				$key="item";
			}
			$xml.="<{$key}{$attr}>";
			$xml.=is_array($value)?self::xmlToEncode($value):$value;
			$xml.="</{$key}>\n";
		}
		return $xml;
	}

XML-JSON混合数据处理


/**
	*xml/json format data
	*@param integer $code status code
	*@param string  $message message data
	*@param arrat   $data
	*@param string  $type  data type
	*return string
	*/
	public static function show($code,$message,$data=array(),$type=self::JSON){
		if (!is_numeric($code)){
			return ‘‘;
		}

		$type=isset($_GET[‘format‘])?$_GET[‘format‘]:self::JSON;

		$result=array(
			‘code‘=>$code,
			‘message‘=>$message,
			‘data‘=>$data
		);

		if($type==‘json‘){
			self::jsonEncode($code,$message,$data);
		}elseif($type==‘xml‘){
			self::xmlEncode($code,$message,$data);
		}else{
			self::jsonEncode($code,$message,$data);
		}
	}

测试调用


$data=array(
	‘id‘=>1,
	‘bane‘=>‘valentine‘,
	‘type‘=>array(4,5,6)
);
Response::show(200,‘success‘,$data);

  

时间: 2024-10-02 20:05:40

PHP接口开发XML/JSON数据通信类的相关文章

iOS开发——XML/JSON数据解析

除了XML和Json,文中还涉及到的一些知识:第三方类库的使用,获取本地文件内容,网站API使用,GCD多线程编程,不做详细介绍,在代码出现的地方会注明. 先安利一波: Json XML 大数据时代,我们需要从网络中获取海量的新鲜的各种信息,就不免要跟着两个家伙打交道,这是两种结构化的数据交换格式.一般来讲,我们会从网络获取XML或者Json格式的数据,这些数据有着特定的数据结构,必须对其进行解析,得到我们可以处理的数据.所谓“解析”,就是从事先规定好的格式串中提取数据.解析的前提是数据的提供方

C#/ASP.NET MVC微信公众号接口开发之从零开发(二) 接收微信消息并且解析XML(附源码)

文章导读: C#微信公众号接口开发之从零开发(一) 接入微信公众平台 微信接入之后,微信通过我们接入的地址进行通信,其中的原理是微信用户发送消息给微信公众账号,微信服务器将消息以xml的形式发送到我们的绑定的地址上,通过解析XML数据,获取到微信用户发送的消息,让根据微信消息(文本:关键字,图片,语音等等)回复XML格式的数据给微信服务器,微信服务器再将接收到的消息返回给用户微信. 我们所需要做的:接收消息和返回消息 一.创建实体类 首先看文档http://mp.weixin.qq.com/wi

iOS开发笔记3:XML/JSON数据解析

这篇主要总结在iOS开发中XML/JSON数据解析过程用到的方法.XML数据解析主要使用SAX方式的NSXMLParser以及DOM方式的GDataXML,JSON数据解析主要使用NSJSONSerialization. 1.XML解析之NSXMLParser NSXMLParser是iOS原生的XML解析方式,采用SAX方式进行解析,特点是解析的时候从根元素开始,按顺序依次对每一个元素进行解析. 以下图所示XML文档为例进行解析 (1)首先是实例化一个NSXMLParser,设置代理监听解析过

使用MyBatis的Generator自动创建实体类和dao的接口与xml

在实际的项目中其实建立数据库和设计数据库的时候特别重要,而等数据库设计完成之后,根据数据库创建实体类的工作就特别麻烦和繁琐了,不仅很麻烦,而且很浪费时间,不做又不行,这次就找到了一个简单的方法可以让myBatis帮你完成这件事情. 首先你需要一个Generator的myeclipes的插件,这个插件能在网上找到,安装方法也很简单就多说了. 下载了这个插件之后,新建一个xml,这个配置文件,就是对你所需要的实体类dao和xml进行合理的配置,看看你需要那些,不需要那些. 这里的配置我参考了网上给出

JSON对象与XML相互转换工具类

依赖jar <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</

[1.30] 保持的力量:接口开发最佳实践

神啊,求你赐给我平静的心,去接受我无法改变的事:赐给我勇气,去做我能改变的事:赐给我智慧,去分辨两者的不同. --平静之祷 1.30.1 论保持的力量 追到一个心仪的女生不难,难于如何保持和培养一份真挚的感情:获得一时的财富也不难,难于如何长久保持收益:创业的公司很容易博得一时媒体的关注以及某次天使的投资,但难于如何排除各种障碍.充分利用各方资源发展成中企业及至上市公司. 同样,提供一时的接口很容易,但当我们需要不断为接口提供升级,以及当我们维护提供一整套接口时,面临的困难和问题会越来越大.所以

【Android】与服务器实现JSON数据通信

一.前言 作为一名移动端开发人员,具备一定的服务端开发能力也是非常必要的,本篇博客讲述如何在Android和服务器之间实现JSON数据通信交互,博客内容基于另外一篇博客:[Web]Eclipse + Maven + Struts搭建服务器. 二.服务器端改造 在博客[Web]Eclipse + Maven + Struts搭建服务器中,我们实现了服务器的搭建,现在要做的事情就是让它返回的数据是一个JSON格式的,这样在获得请求的时候,我们才可以得到JSON数据,其配置改变如下. 首先我们新建一个

java微信接口开发java SpringMVC mybatis 后台框架 集成代码生成器开发利器

获取[下载地址]   QQ: 313596790   [免费支持更新]支持三大数据库 mysql  oracle  sqlsever   更专业.更强悍.适合不同用户群体[新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统]A 代码生成器(开发利器);      增删改查的处理类,service层,mybatis的xml,SQL( mysql   和oracle)脚本,   jsp页面 都生成   就不用写搬砖的代码了,生成的放到项目里,可以直接运行B 阿里巴巴数据库连接池druid

java 微信自定义菜单 java微信接口开发 公众平台 SSM redis shiro 多数据源

获取[下载地址]   QQ: 313596790官网 http://www.fhadmin.org/A 调用摄像头拍照,自定义裁剪编辑头像,头像图片色度调节B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,快速开发利器)+快速表单构建器 freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本,处理类,service等完整模块C 集成阿里巴巴数据库连接池druid  数据库连接池  阿里巴巴的 druid.Druid在监控.可扩展性.稳定性和性能方面都