json、xml ---- 数据格式生成类
自己写的一个生成json/xml 格式数据的类,可用于api数据传输:
<?php
class Response{
/**
*生成指定数据格式
*@param intval $code 状态码
*@param string $message 状态说明
*@param array $data 数据
*@param string $type 要求返回的数据格式
*@return string $data 数据
*/
public static function dataType($code,$message,$data='',$type='xml'){ if (in_array($type,array('json','xml','array'))) {
if ($type == 'json') {
$data = self::json($code,$message,$data);
}elseif ($type == 'xml') {
$data = self::xml($code,$message,$data);
}elseif ($type == 'array') {
var_dump(self::data($code,$message,$data));
}else{
exit;
}
}
} /**
*按json格式生成数据格式
*@param intval $code
*@param string $message
*@param array $data
*@return string
*/
public static function json($code,$message,$data){
$data = self::data($code,$message,$data);
echo json_encode($data);
exit;
}
/**
*按xml格式生成数据格式
*@param intval $code
*@param string $message
*@param array $data
*@return string
*/
public static function xml($code,$message,$data){
$data = self::data($code,$message,$data);
header("Content-Type:text/xml");
$xml = '<?xml version="1.0" encoding="UTF-8"?>';
$xml .= '<note>';
$xml .= self::xmlToEncode($data);
$xml .= '</note>';
echo $xml;
exit;
}
/**
*创建xml节点
*@param array $data
*@return string $xml
*/
public static function xmlToEncode($data){
$xml = '';
foreach ($data as $k=>$v) {
$attr = '';
if (is_numeric($k)) {
$attr = " id='{$k}'";
$k = 'item';
}
$xml .= "<{$k}{$attr}>";
$xml .= is_array($v)?self::xmlToEncode($v):$v;
$xml .= "</$k>";
}
return $xml;
} /**
*按array格式创建数据格式
*@param intval $code
*@param string $message
*@param array $data
*@return array $data
*/
public static function data($code,$message,$data){
if (!is_numeric($code)) {
return '';
}
$data = array(
'code'=>$code,
'message'=>$message,
'data'=>$data
);
return $data;
} }
?>
json、xml ---- 数据格式生成类的更多相关文章
- REST easy with kbmMW #24 使用kbmMW实现JSON/XML/YAML转换成对象
你想过没有,把一个给定的xml或json生成一个Delphi类,并通过这个类完成对xml或json的读写操作吗? 不管有没有,现在kbmMW为我们实现了,看下面这行代码: var s:string; ...
- JSON/XML序列化与反序列化(非构造自定义类)
隔了很长时间再重看自己的代码,觉得好陌生..以后要养成多注释的好习惯..直接贴代码..对不起( ▼-▼ ) 保存保存:进行序列化后存入应用设置里 ApplicationDataContainer _a ...
- 如何由XSD自动生成XML和实体类
项目中有时候要用XML作为数据源,因此需要定义XML文件和相应的类,最佳方法是首先定义XSD,然后自动生成实体类,最后生成XML和填充数据:读取XML数据源的时候,首先用XSD验证XML数据格式,然后 ...
- 使用maven根据JSON文件自动生成Java POJO类(Java Bean)源文件
根据JSON文件自动生成Java POJO类(Java Bean)源文件 本文介绍使用程序jsonschema2pojo来自动生成Java的POJO类源文件,本文主要使用maven,其他构建工具请参考 ...
- ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 用javascript在客户端删除某一个cookie键值对 input点击链接另一个页面,各种操作。 C# 往线程里传参数的方法总结 TCP/IP 协议 用C#+Selenium+ChromeDriver 生成我的咕咚跑步路线地图 (转)值得学习百度开源70+项目
ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 我们都知道在使用WebApi的时候Controller会自动将Action的返回值自动进行各种序列化处理(序列化为 ...
- 让Visual Studio 2013为你自动生成XML反序列化的类
Visual Sutdio 2013增加了许多新功能,其中很多都直接提高了对代码编辑的便利性.如: 1. 在代码编辑界面的右侧滚动条上显示不同颜色的标签,让开发人员可以对所编辑文档的修改.查找.定位情 ...
- 利用在线工具根据JSon数据自动生成对应的Java实体类
如果你希望根据JSon数据自动生成对应的Java实体类,并且希望能进行变量的重命名,那么“JSON To Java”一定适合你.(下面的地址需要FQ) https://jsontojava.appsp ...
- 自动生成XML反序列化的类
原文地址:http://www.cnblogs.com/jaxu/p/3632077.html Visual Sutdio 2013增加了许多新功能,其中很多都直接提高了对代码编辑的便利性.如: ...
- (原)C++解析XML生成类对象_v1.0 函数指针
要写一个xml解析,解析后获得到的数据变成各个类的对象. 解析有现成的库,使用tinyxml,但是解析出来的类库如何变成各个类的对象, 例如一下这个xml, <musics> <mu ...
随机推荐
- Javascript AMD模块化规范-备用
AMD是"Asynchronous Module Definition"的缩写,意思是"异步模块定义". 模块定义define(id?, dependencie ...
- clang: error: invalid deployment target for -stdlib=libc++ (requires iOS 5.0 or later)
低于5.0版本的不支持设置成 或 在Xcode中做如下配置 静态库工程也要做同样设置
- 【POJ3294】 Life Forms (后缀数组+二分)
Life Forms Description You may have wondered why most extraterrestrial life forms resemble humans, d ...
- 单片机Keil软件仿真与调试技巧
一.引言 单片机软件开发过程中,软件调试遇到的各种问题常令初学者感到不知所措.实际上.各种仿真开发软件的程序调试基本方法和技巧大同小异,掌握正确的程序调试基本技巧.对于排查这些程序错误问题可以起到举一 ...
- buffer busy waits
Buffer busy waits 当会话想要访问缓冲区中的数据块,而该数据块正在被其他会话使用时将产生Buffer busy waits事件. 其他会话可能正从数据文件向缓冲器读取同样的数据块,或正 ...
- js图片预览插件,不涉及上传
小小的几十行代码,很牛逼,很实用. 支持多个图片的预览,只要new多个对象就行了. html如下 <!-- zhouxiang www.zhou-xiang.com --> <!DO ...
- HDOJ 1312题Red and Black
Red and Black Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...
- UVa 11077 Find the Permutations(置换+递推)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=35431 [思路] 置换+递推 将一个排列看作一个置换,分解为k个循 ...
- 炮兵阵地 - POJ 1185(状态压缩)
分析:先枚举出来所有的合法状态(当N=10的时候合法状态最多也就60种),用当前状态匹配上一行和上上一行的状态去匹配,看是否可以.....复杂度100*60*60*60,也可以接受. 代码如下: == ...
- wmic
前沿:WMIC命令在我们的工作中可以帮助我们减少对其他工具的依赖并节省我们的时间,实在是一个值得学习和研究的好东西 命令很多,这里我把网上目前能找到的较实用的一些命令整理出来,希望各位看官能找到自己需 ...