json格式_如何写一个格式化json的程序

json格式_如何写一个格式化json的程序true,'errMsg'=>'','member'=>array(array('name'=>&#

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

<?php  
  
/** Json数据格式化 
* @param  Mixed  $data   数据 
* @param  String $indent 缩进字符,默认4个空格 
* @return JSON 
*/  
function jsonFormat($data, $indent=null){  
  
    // 对数组中每个元素递归进行urlencode操作,保护中文字符  
    array_walk_recursive($data, 'jsonFormatProtect');  
  
    // json encode  
    $data = json_encode($data);  
  
    // 将urlencode的内容进行urldecode  
    $data = urldecode($data);  
  
    // 缩进处理  
    $ret = '';  
    $pos = 0;  
    $length = strlen($data);  
    $indent = isset($indent)? $indent : '    ';  
    $newline = "\n";  
    $prevchar = '';  
    $outofquotes = true;  
  
    for($i=0; $i<=$length; $i++){  
  
        $char = substr($data, $i, 1);  
  
        if($char=='"' && $prevchar!='\\'){  
            $outofquotes = !$outofquotes;  
        }elseif(($char=='}' || $char==']') && $outofquotes){  
            $ret .= $newline;  
            $pos --;  
            for($j=0; $j<$pos; $j++){  
                $ret .= $indent;  
            }  
        }  
  
        $ret .= $char;  
          
        if(($char==',' || $char=='{' || $char=='[') && $outofquotes){  
            $ret .= $newline;  
            if($char=='{' || $char=='['){  
                $pos ++;  
            }  
  
            for($j=0; $j<$pos; $j++){  
                $ret .= $indent;  
            }  
        }  
  
        $prevchar = $char;  
    }  
  
    return $ret;  
}  
  
/** 将数组元素进行urlencode 
* @param String $val 
*/  
function jsonFormatProtect(&$val){  
    if($val!==true && $val!==false && $val!==null){  
        $val = urlencode($val);  
    }  
}  
  
header('content-type:application/json;charset=utf8');  
  
$arr = array(  
    'status' => true,  
    'errMsg' => '',  
    'member' =>array(  
        array(  
            'name' => '李逍遥',  
            'gender' => '男'  
        ),  
        array(  
            'name' => '赵灵儿',  
            'gender' => '女'  
        )  
    )  
);  
  
echo jsonFormat($arr);  
  




?>

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167417.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 深度linux iso镜像,深度 Deepin 15 正式版 ISO 镜像下载 – 精美易用适合国人学习的国产 Linux 发行版……「建议收藏」

    深度linux iso镜像,深度 Deepin 15 正式版 ISO 镜像下载 – 精美易用适合国人学习的国产 Linux 发行版……「建议收藏」本帖最后由javy于2016-1-822:06编辑现在除了Windows和Mac之外,越来越多朋友想要学习使用一下Linux系统。不过,国外的诸如CentOS、Ubuntu似乎“专业”了一点,对于新手/普通用户,面向国人的优麒麟或深度操作系统可能更加合适。作为优秀的国产Linux发行版之一,深度Deepin操作系统近年来发展相当迅速,团队投入了十足精力开发和精心设计…

    2022年5月16日
    54
  • 菜鸟教程python3 mysql_MySQL菜鸟教程

    菜鸟教程python3 mysql_MySQL菜鸟教程页眉内容MySQL教程Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(RelationalDatabaseManagementSystem:关系数据库管理系统)应用软件之一。在本教程中,会让大家快速掌握Mysql的基本知识,并轻松使用Mysql数据库。什么是数据库?数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个…

    2025年7月30日
    1
  • mysql手机号段地区库_最新全国手机号段归属地数据库下载(mysql+xlsx+txt格式)46万条…「建议收藏」

    mysql手机号段地区库_最新全国手机号段归属地数据库下载(mysql+xlsx+txt格式)46万条…「建议收藏」在做网站程序时,经常用到校验用户输入的手机号归属地或所属移动,电信,联通等服务商,本手机号码段归属地数据库包括支持可查省份城市运营商邮编区号。而且提供.mysql,excel,txt三种数据格式数据库,2020年11月份最新的包括46万条记录集,可方便为实现手机号码段归属地查询提供强大后台数据库支持。三大运营商最新号段移动号段:134135136137138139147148…

    2022年7月22日
    16
  • 软件项目管理笔记

    软件项目管理笔记第一章.软件项目管理概述1.实现项目目标的制约因素有:项目范围成本进度计划客户满意度2.项目管理包括:启动过程组计划过程组执行过程组控制过程组收尾过程组3.什么是项目:为了创造一个唯一的产品或者提供一个唯一的服务而进行的临时性的努力,所以说项目具有临时性特性4.过程管理就是对过程进行管理,目的是要让过程能够被共享,复用,并得到持续的改进5.项目与日常运作的区别与共同点:项目日常运作以目标为导项通过效率和有效性的体现通过项目经理及其团队工

    2022年5月4日
    43
  • 华为C++面试题(产品经理逻辑面试题)

    1.static有什么用途?(请至少说明两种)   1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。   2)在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。   3)在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范

    2022年4月11日
    54
  • n皇后问题有几个解_求n的阶乘java代码

    n皇后问题有几个解_求n的阶乘java代码N皇后问题是一个经典的问题,在一个N*N的棋盘上放置N个皇后,每行一个并使其不能互相攻击(同一行、同一列、同一斜线上的皇后都会自动攻击)。n皇后问题不算是陈词滥调,也是老生常谈了,作为回溯的经典案例,有递归和非递归两种实现方式,同时,除了回溯算法,最近我在网上查了下看到还可以用位运算来解决这个问题。本次趁着本学期算法课程的期末要求,我将对两种算法的实验效果进行分析。1、使用回溯解决n皇后问

    2022年9月30日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号