<?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); ?>

json数据进行格式化的更多相关文章

  1. 利用Gson将JSON数据进行格式化(pretty print)

    我们可以利用Gson包将String类型的JSON数据进行格式化. Gson gson = new GsonBuilder().setPrettyPrinting().create(); JsonPa ...

  2. spingmvc 返回json数据日期格式化方法

    第一种: json 用的是这个依赖 <!-- JSON lib 开发包 以及它的依赖包 --> <dependency> <groupId>com.fasterxm ...

  3. Android json数据Log格式化打印

    https://blog.csdn.net/adarcy/article/details/76601896 public static final String LINE_SEPARATOR = Sy ...

  4. vim调用python格式化json数据

    vim调用python格式化json数据 November 30, 2013GNU/Linuxpython3, Vimopenwares python有个标准模块叫json,用于编码/解码,序列化/按 ...

  5. js格式化JSON数据

    前言: 最近做的项目中遇到个需要在前端页面中将某个设备需要的数据格式展示出来,方便用户配置.一开始单纯的将数据格式写入到pre标签中, 但是通过pre标签写入的数据格式在代码可视化上不是很优雅.由于上 ...

  6. iOS边练边学--iOS中的json数据解析

    JSON数据(NSData) -> OC对照表 {} -> NSDictionary @{} [] -> NSArray @[] "jack" -> NSS ...

  7. Android解析中国天气网的Json数据

    在Android开发中.一般的APP都是通过获取server端的数据来更新UI.从server获取到的数据能够是Json.它的数据量要比XML要小,这里解析中国天气网上获取的数据,尽管已经不再更新了. ...

  8. Golang: 解析JSON数据之一

    JSON 作为目前最流行的数据传输格式, 相信每个程序员都跟它打过交道吧.使用 Go 语言时,也不可避免的要操作 JSON 数据,令人惊喜的是,Go 内置了序列化和反序列化 JSON 的功能,今天就来 ...

  9. 教你不编程快速解析 JSON 数据

    JSON 是一种轻量级的,不受语言约束的数据存储格式,大部分编程语言都可以解析它,并且对编程人员也十分友好.我们在进行通讯/数据交互时,非常经常用到 JSON 格式. 但是,我们在进行数据存储的时候, ...

随机推荐

  1. python基础学习1-装饰器在登陆模块应用

    LOGIN_USER ={"islogin":False} def outer(func): def inner(*args,**kwargs): if LOGIN_USER[&q ...

  2. jQuery学习-事件绑定

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. Masonry的简单使用(一)

    Masonry的简单使用(一) 一.新建工程 二.导入Masonry,可从我的GitHub上获取"Masonry":https://github.com/sycFuture/Mas ...

  4. 洛咕 P3338 [ZJOI2014]力

    好久没写过博客了.. 大力推式子就行了: \(E_i=\sum_{j<i}\frac{q_j}{(i-j)^2}+\sum_{j>i}\frac{q_j}{(j-i)^2}\) 那么要转化 ...

  5. P3707 [SDOI2017]相关分析

    P3707 [SDOI2017]相关分析 线段树裸题?但是真的很麻烦QAQ 题目给的式子是什么不用管,大力拆开,就是\(\frac{\sum x_iy_i-\overline xy_i-\overli ...

  6. appium 遇到的坑

    上周开始试着来用appium,首先开始去官网看,然后下载appium客户端,下载安装后,然后笔者开始安装android sdk   ,进官网下载后,笔者下载安装后,在更新下载SDK Manager的时 ...

  7. C# 代码备份数据库 ,不需要 其他 DLL

    protected void Button1_Click(object sender, EventArgs e)    {        ///        ///备份方法        ///  ...

  8. PS入门到精通完全自学教程

    ps视频教程,ps自学视频教程.ps免费视频教程下载,PS入门到精通完全自学教程视频内容较大,分为俩部分: PS入门到精通完全自学教程-第一部分(带swf播放器):百度网盘,https://pan.b ...

  9. 第十三次ScrumMeeting博客

    第十三次ScrumMeeting博客 本次会议于12月3日(六)21时30分整在3公寓725房间召开,持续20分钟. 与会人员:刘畅.辛德泰.张安澜.赵奕. 1. 每个人的工作(有Issue的内容和链 ...

  10. MyForm_参考django的Form组建

    fork wupeiqi:https://github.com/fat39/Tyrion 组件说明:https://www.cnblogs.com/wupeiqi/p/5938916.html