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 ...
随机推荐
- iOS 中KVC、KVO、NSNotification、delegate 总结及区别-b
1.KVC,即是指 NSKeyValueCoding,一个非正式的Protocol,提供一种机制来间接访问对象的属性.而不是通过调用Setter.Getter方法访问.KVO 就是基于 KVC 实现的 ...
- 小记,取GB2312汉字的首字母【转】
/// <summary> /// PY 的摘要说明. /// </summary> public class PY { // Fields private string m_ ...
- 【 UVALive - 4287】Proving Equivalences (SCC缩点)
题意: 给出N个命题,要求你证明这N个命题的等价性 比如有4个命题a,b,c,d,我们证明a<->b, b<->c,c<->d,每次证明都是双向的,因此一共用了6次 ...
- VLD(Visual LeakDetector)内存泄露库的使用
VLD简介 由于C/C++语言没有所谓的垃圾收集器,内存的分配和释放都需要程序员自己来控制,这会给C/C++程序员带来一定的困难.当您的程序越来越复杂时,它的内存管理也会变得越来越困难.内存泄漏.内存 ...
- 2.5.2 使用alertdialog 创建列表对话框
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout ...
- eclipse 导入Android项目时报告 Invalid Project Description
现象描述: 1.新建Android项目XX2.删除Android项目XX3.使用Existing Android Code Into Workspace(EACIW)导入Android项目XX,报错: ...
- Bluetooth LE(低功耗蓝牙) - 第三部分
回顾 在本系列的前两篇文章中,我们已经了解了一些关于Bluetooth LE的背景并建立一个简单的Activity / Service框架. 在这篇文章中,我们将探讨Bluetooth LE的细节 ...
- 如何查看jar包的版本号?
jar包根目录里的META-INF目录下的MANIFEST.MF文件里一般有会记录版本信息,可以到这个文件里查看 打开Java的JAR文件我们经常可以看到文件中包含着一个META-INF目录,这个 ...
- poj-1782 Run Length Encoding
http://poj.org/problem?id=1782 Run Length Encoding Time Limit: 1000MS Memory Limit: 30000K Total S ...
- 使用VisualStudio进行单元测试之三
私有方法需不需要测试,本文不做讨论.假设您也认为有时候,私有方法也需要进行测试,那就一起来看看如何进行私有方法的测试. 准备测试代码 测试用的代码还是前面测试时使用过的代码,不同之处就是在类中增加了一 ...