自己写的一个生成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 ---- 数据格式生成类的更多相关文章

  1. REST easy with kbmMW #24 使用kbmMW实现JSON/XML/YAML转换成对象

    你想过没有,把一个给定的xml或json生成一个Delphi类,并通过这个类完成对xml或json的读写操作吗? 不管有没有,现在kbmMW为我们实现了,看下面这行代码: var s:string; ...

  2. JSON/XML序列化与反序列化(非构造自定义类)

    隔了很长时间再重看自己的代码,觉得好陌生..以后要养成多注释的好习惯..直接贴代码..对不起( ▼-▼ ) 保存保存:进行序列化后存入应用设置里 ApplicationDataContainer _a ...

  3. 如何由XSD自动生成XML和实体类

    项目中有时候要用XML作为数据源,因此需要定义XML文件和相应的类,最佳方法是首先定义XSD,然后自动生成实体类,最后生成XML和填充数据:读取XML数据源的时候,首先用XSD验证XML数据格式,然后 ...

  4. 使用maven根据JSON文件自动生成Java POJO类(Java Bean)源文件

    根据JSON文件自动生成Java POJO类(Java Bean)源文件 本文介绍使用程序jsonschema2pojo来自动生成Java的POJO类源文件,本文主要使用maven,其他构建工具请参考 ...

  5. 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的返回值自动进行各种序列化处理(序列化为 ...

  6. 让Visual Studio 2013为你自动生成XML反序列化的类

    Visual Sutdio 2013增加了许多新功能,其中很多都直接提高了对代码编辑的便利性.如: 1. 在代码编辑界面的右侧滚动条上显示不同颜色的标签,让开发人员可以对所编辑文档的修改.查找.定位情 ...

  7. 利用在线工具根据JSon数据自动生成对应的Java实体类

    如果你希望根据JSon数据自动生成对应的Java实体类,并且希望能进行变量的重命名,那么“JSON To Java”一定适合你.(下面的地址需要FQ) https://jsontojava.appsp ...

  8. 自动生成XML反序列化的类

    原文地址:http://www.cnblogs.com/jaxu/p/3632077.html   Visual Sutdio 2013增加了许多新功能,其中很多都直接提高了对代码编辑的便利性.如: ...

  9. (原)C++解析XML生成类对象_v1.0 函数指针

    要写一个xml解析,解析后获得到的数据变成各个类的对象. 解析有现成的库,使用tinyxml,但是解析出来的类库如何变成各个类的对象, 例如一下这个xml, <musics> <mu ...

随机推荐

  1. Encoding 类别

    Encoding 類別 .NET Framework 4.5   表示字元編碼方式. 繼承階層架構 System.Object   System.Text.Encoding    System.Tex ...

  2. NHibernate configuration

    http://blog.csdn.net/dbcolor/article/details/2061929

  3. svn代码统计

    http://chenzhou123520.iteye.com/blog/1436653

  4. [BZOJ 1221] [HNOI2001] 软件开发 【费用流 || 三分】

    题目链接:BZOJ - 1221 题目分析 算法一:最小费用最大流 首先这是一道经典的网络流问题.每天建立两个节点,一个 i 表示使用毛巾,一个 i' 表示这天用过的毛巾. 然后 i 向 T 连 Ai ...

  5. Keil工程文件的建立、设置与目标文件的获得

    单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为 CPU 可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工 汇编的方法了.机器汇编是通过汇编软件 ...

  6. [原]Hadoop海量视频、图像分析分布式处理总结

    在刚刚入手视频图像分析时,有点不知所措,后来经过查找了很多资料.本篇文章主要叙述图像的分析处理,至于视频,实际上视频本身就是一个大文件,hadoop对于大文件处理是高效的,所以在MapReduce的处 ...

  7. [LeetCode#84]Largest Rectangle in Histogram

    Problem: Given n non-negative integers representing the histogram's bar height where the width of ea ...

  8. WordPress Ultimate Auction插件跨站请求伪造漏洞

    漏洞名称: WordPress Ultimate Auction插件跨站请求伪造漏洞 CNNVD编号: CNNVD-201306-396 发布时间: 2013-09-11 更新时间: 2013-09- ...

  9. Google Map API 代码示例

  10. python for selenium 数据驱动测试

    # -*- coding:utf-8 -*- """ 数据驱动测试,从 csv 文件中读取数据 """ from selenium impo ...