php格式化json函数示例代码


Posted in PHP onMay 12, 2016

本文讲述了php格式化json函数的示例代码。分享给大家供大家参考,具体如下:

<?php
$arr = array("ret"=>0,"data"=>array('a' => 1, 'b' => '2', 'c' => 3, 'd' => 4, 'e' => 5));
$json = json_encode($arr);
/**
* Formats a JSON string for pretty printing
*
* @param string $json The JSON to make pretty
* @param bool $html Insert nonbreaking spaces and <br />s for tabs and linebreaks
* @return string The prettified output
*/
function _format_json($json, $html = false) {
 $tabcount = 0;
 $result = '';
 $inquote = false;
 $ignorenext = false;
 if ($html) {
  $tab = "   ";
  $newline = "<br/>";
 } else {
  $tab = "\t";
  $newline = "\n";
 }
 for($i = 0; $i < strlen($json); $i++) {
  $char = $json[$i];
  if ($ignorenext) {
  $result .= $char;
  $ignorenext = false;
  } else {
  switch($char) {
   case '{':
   $tabcount++;
   $result .= $char . $newline . str_repeat($tab, $tabcount);
   break;
   case '}':
   $tabcount--;
   $result = trim($result) . $newline . str_repeat($tab, $tabcount) . $char;
   break;
   case ',':
   $result .= $char . $newline . str_repeat($tab, $tabcount);
   break;
   case '"':
   $inquote = !$inquote;
   $result .= $char;
   break;
   case '\\':
   if ($inquote) $ignorenext = true;
   $result .= $char;
   break;
   default:
   $result .= $char;
  }
  }
 }
 return $result;
}
echo _format_json($json);
/*
{
 "ret": 0,
 "data": {
 "a": 1,
 "b": 2,
 "c": 3,
 "d": 4,
 "e": 5
 }
}
**/
?>

另外,本站还提供了如下格式化与转换工具方便大家使用:

php代码在线格式化美化工具:
http://tools.3water.com/code/phpformat

在线XML/JSON互相转换工具:
http://tools.3water.com/code/xmljson

JavaScript代码美化/压缩/格式化/加密工具:
http://tools.3water.com/code/jscompress

在线XML格式化/压缩工具:
http://tools.3water.com/code/xmlformat

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php.ini 中文版
Oct 28 PHP
15种PHP Encoder的比较
Mar 06 PHP
解析php中mysql_connect与mysql_pconncet的区别详解
May 15 PHP
使用PHP计算两个路径的相对路径
Jun 14 PHP
实现获取http内容的php函数分享
Feb 16 PHP
使用array_map简单搞定PHP删除文件、删除目录
Oct 29 PHP
php+mysqli使用面向对象方式查询数据库实例
Jan 29 PHP
使用PHP编写发红包程序
Jul 22 PHP
Joomla实现组件中弹出一个模式(modal)窗口的方法
May 04 PHP
PHP读取CSV大文件导入数据库的实例
Jul 24 PHP
详解如何实现Laravel的服务容器的方法示例
Apr 15 PHP
PHP7 其他语言层面的修改
Mar 09 PHP
php ucwords() 函数将字符串中每个单词的首字符转换为大写(实现代码)
May 12 #PHP
yii2带搜索功能的下拉框实例详解
May 12 #PHP
使用php从身份证号中获取一系列线索(星座、生肖、生日等)
May 11 #PHP
PHP数据库操作Helper类完整实例
May 11 #PHP
PHP查询附近的人及其距离的实现方法
May 11 #PHP
Smarty分页实现方法完整实例
May 11 #PHP
php简单获取复选框值的方法
May 11 #PHP
You might like
十天学会php之第九天
2006/10/09 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
广泛收集的jQuery拖放插件集合
2012/04/09 Javascript
jQuery选择器简明总结(含用法实例,一目了然)
2014/04/25 Javascript
jfreechart插件将数据展示成饼状图、柱状图和折线图
2015/04/13 Javascript
解决JavaScript数字精度丢失问题的方法
2015/12/03 Javascript
ArtEditor富文本编辑器增加表单提交功能
2016/04/18 Javascript
快速移动鼠标触发问题及解决方法(ECharts外部调用保存为图片操作及工作流接线mouseenter和mouseleave)
2016/08/29 Javascript
js仿小米官网图片轮播特效
2016/09/29 Javascript
Jquery Easyui选项卡组件Tab使用详解(10)
2016/12/18 Javascript
Vue数据驱动模拟实现4
2017/01/12 Javascript
vue2.x 父组件监听子组件事件并传回信息的方法
2017/07/17 Javascript
浅谈js的解析顺序 作用域 严格模式
2017/10/23 Javascript
深入理解Angularjs 脏值检测
2018/10/12 Javascript
Vue 组件注册实例详解
2019/02/23 Javascript
Vue Echarts实现可视化世界地图代码实例
2019/05/07 Javascript
vue使用exif获取图片经纬度的示例代码
2020/12/11 Vue.js
[06:23]2014DOTA2西雅图国际邀请赛 小组赛7月12日TOPPLAY
2014/07/12 DOTA
[02:28]DOTA2亚洲邀请赛附加赛 RECAP赛事回顾
2015/01/29 DOTA
Python实现的Kmeans++算法实例
2014/04/26 Python
在Python中处理日期和时间的基本知识点整理汇总
2015/05/22 Python
python中安装模块包版本冲突问题的解决
2017/05/02 Python
python 实现登录网页的操作方法
2018/05/11 Python
你还在@微信官方?聊聊Python生成你想要的微信头像
2019/09/25 Python
numpy 声明空数组详解
2019/12/05 Python
Python版中国省市经纬度
2020/02/11 Python
CSS3实现的炫酷菜单代码分享
2015/03/12 HTML / CSS
美国电子产品折扣网站:Daily Steals
2017/05/20 全球购物
GAP阿联酋官网:GAP UAE
2017/11/30 全球购物
TripAdvisor瑞典:全球领先的旅游网站
2017/12/11 全球购物
家长会演讲稿范文
2014/01/10 职场文书
银行主办会计岗位职责
2014/08/13 职场文书
行政文员岗位职责
2015/02/04 职场文书
2016春季校长开学典礼致辞
2015/11/26 职场文书
详解thinkphp的Auth类认证
2021/05/28 PHP
【海涛DOTA】D-cup邀请赛NV.cn vs DT.Love
2022/04/01 DOTA