php自定义json字符串,php自定义json_encode()和json_decode()函数

json数据大家应该遇到过,json_encode()和json_decode()是php5.0以后加上的内置函数,如果低版本要使用,需加扩展,很多时候我们无权改变服务器的配置,我们只能通过自定义函数来实现这两个函数,其实所有的系统内置函数,基本上我们都是可以自己来定义的。

if (!function_exists('json_encode')) {

function json_encode($array = array()) {

if(!is_array($array)) return null;

$json = "";

$i = 1;

$comma = ",";

$count = count($array);

foreach($array as $k=>$v){

if($i==$count) $comma = "";

if(!is_array($v)){

$v = addslashes($v);

$json .= '"'.$k.'":"'.$v.'"'.$comma;

}

else{

$json .= '"'.$k.'":'.json_encode($v).$comma;

}

$i++;

}

$json = '{'.$json.'}';

return $json;

}

}

if (!function_exists('json_decode')) {

function json_decode($json, $assoc = true) {

$comment = false;

$out = '$x=';

$json = preg_replace('/:([^"}]+?)([,|}])/i', ':"\1″\2′, $json);

for ($i=0; $i

if (!$comment) {

if (($json[$i] == '{') || ($json[$i] == '[')) {

$out .= 'array(';

}

elseif (($json[$i] == '}') || ($json[$i] == ']')) {

$out .= ')';

}

elseif ($json[$i] == ':') {

$out .= '=>';

}

elseif ($json[$i] == ',') {

$out .= ',';

}

elseif ($json[$i] == '"') {

$out .= '"';

}

}

else $out .= $json[$i] == '$' ? '\$' : $json[$i];

if ($json[$i] == '"' && $json[($i-1)] != '\\') $comment = !$comment;

}

eval($out. ';');

return $x;

}

}

php中的json_encode()和json_decode()函数的一些说明

一,json语法( php中的json_decode($json)中的$json要符合json语法格式 ) ① JSON可以表示三种类型的值 1,简单值.包括整型,字符串型,布尔值和null.例如:5 ...

转载--PHP json_encode() 和json_decode()函数介绍

转自:http://www.nowamagic.net/php/php_FunctionJsonEncode.php 转自:http://www.jb51.net/article/30489.htm ...

ecshop类的解析2 json_encode和json_decode的具体实现

在看ecshop源码时,看到json这个类,研究了一下,它是为了兼容低版本php而做出的类,是对php的数据和json转换时使用的. encode和decode函数是对json的操作,对应json_e ...

HP数组转JSON函数json_encode和JSON转数组json_decode函数的使用方法

这两个函数比较简单,我这里直接写例子,但是有一点一定要注意,json数据只支持utf-8格式,GBK格式的数据转换为json会报错! json_encode()用法: <?php $data =a ...

PHP json&lowbar;decode 函数解析 json 结果为 NULL 的解决方法

在做网站 CMS 模块时,对于模块内容 content 字段,保存的是 json 格式的字符串,所以在后台进行模块内容的编辑操作 ( 取出保存的数据 ) 时,需要用到 json_decode() 函数 ...

PHP数组和Json之间的互相转换 json&lowbar;encode&lpar;&rpar; 和 json&lowbar;decode&lpar;&rpar;

之所以要用到Json,很多时候是因为使用ajax对象时,程序与JS函数之间的数据交互.因为JS不认识PHP中的数组,PHP也不认识JS中的数组或对象.Json很好的解决了这个问题. Json简介 JS ...

json&lowbar;encode和json&lowbar;decode和isset和array&lowbar;key&lowbar;exists

1.json_decode() json_decode — 对 JSON 格式的字符串进行编码         说明 mixed json_decode ( string $json [, bool ...

PHP开发笔记(二)PHP的json&lowbar;encode和json&lowbar;decode问题

解决PHP的json_encode问题之前,先了解一下PHP预定义常量http://php.net/manual/zh/json.constants.php. 用PHP的json_encode来处理中 ...

随机推荐

ZT 趋势移动安全apk

趋势移动安全 应用截图   应用简介 趋势移动安全( Mobile Security) 是一款专业的Android移动安全软件.利用趋势科技世界领先的云安全技术,保护用户避免被移动恶意程序骚扰,避免个 ...

atitit&period;提升备份文件复制速度&lpar;4&rpar; ---数据挖掘 获取回收站文件列表

atitit.) ---数据挖掘 获取回收站文件列表 1. 放入回收站的原理and 1 2. info2文件文件结构 1 3. 获得文件列表2个法: 正则表达式or解析 1 4. 路径正则表达式[a- ...

转:DesiredCapabilities内容详解--Appium服务关键字

## Appium 服务关键字 |关键字|描述|实例| |----|-----------|-------| |`automationName`|你想使用的自 ...

&lbrack;ios2&rsqb;UItableview相关 【转】

1.使tableview在界面启动后定位在x行 -(void)viewDidLoad {     [superviewDidLoad];   NSIndexPath *first = [NSIndex ...

Java日志工具之java&period;util&period;logging&period;Logger

今天总结下JDK自带的日志工具Logger,虽然它一直默默无闻,但有时使用它却比较方便.更详细的信息可以查看JDK API手册,本文只是简单示例入门. 创建Logger 我们可以使用Logger的工厂 ...

Png 图像缩放保持 Alpha 通道

procedure TForm1.Button1Click(Sender: TObject); //uses Winapi.GDIPOBJ, Winapi.GDIPAPI, Winapi.GDIPUT ...

中软酒店管理系统CSHIS操作手册&lowbar;数据结构&lowbar;数据字典

https://wenku.baidu.com/view/f6ca11f5ee06eff9aef807cb.html

Java的transient关键字(转)

Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值.而且,当成员变量发生变化时,强迫线程将变化值回写到主内存.这样在任何时刻,两个不同的线程总是看到某个成员变量的同一 ...

Asp&period;net MVC Razor常见问题及解决方法&lpar;转载&gt&semi;云中客&rpar;

没有经验的童鞋就是这样磕磕碰碰出来的经验. 1,Datatype的错误提示消息无法自定义 这也许是Asp.net MVC的一个Bug.ViewModel中定义了DataType为Date字段: 1 2 ...

time-based DB

这类时间序列数据库最多,使用也最广泛.一般人们谈论时间序列数据库的时候指代的就是这一类存储.按照底层技术不同可以划分为三类. 直接基于文件的简单存储:RRD Tool,Graphite Whisper ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值