xml和json格式输出

Posted 果然朝辉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了xml和json格式输出相关的知识,希望对你有一定的参考价值。

<?php

class Response{
    const JSON =‘json‘;

    /*
    * 按综合方式输出通信数据
    * @param integer $code 状态码
    * @param string $message 提示信息
    * @param array $data 数据
    * @param string $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::json($code,$message,$data);
        }elseif ($type == ‘array‘) {
            //用于调试
            var_dump($result);
        }elseif ($type == ‘xml‘) {
            self::xmlEncode($code,$message,$data);
        }else{
            // TODO
        }
    }

    /*
    * 按JSON方式输出通信数据
    * @param integer $code 状态码
    * @param string $message 提示信息
    * @param array $data 数据
    * return string
    */
    public static function json($code,$message=‘‘,$data=array()){
        
        if (!is_numeric($code)) {
            return ‘‘;
        }

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

        echo json_encode($result);
        exit;
    }

    /*
    * 按XML方式输出通信数据
    * @param integer $code 状态码
    * @param string $message 提示信息
    * @param array $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‘ ?>";
        $xml .= "<root>\n";

        //拼接xml数据格式
        $xml .= self::xmlToEncode($result);

        $xml .= "</root>";
        echo $xml;
        exit;
    }

    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格式输出的主要内容,如果未能解决你的问题,请参考以下文章

WebApi接口 - 响应输出xml和json

WebApi接口 - 响应输出xml和json

使Asp.net Core同时支持输出Json/Xml

Git 日志输出到 XML、JSON 还是 YAML?

Java - 格式化输出JSON字符串的两种方式

Python: xml转json