1.json_encod基本用法:数组转字符串

<?php
$arr = array ('a'=>,'b'=>,'c'=>,'d'=>,'e'=>);
echo json_encode($arr);
?>
以上例程会输出:
{"a":,"b":,"c":,"d":,"e":}

 2.json_decode基本用法:字符串转数组

<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));
?>
输出
array{
["a"] => int()
["b"] => int()
["c"] => int()
["d"] => int()
["e"] => int()

3.json_encode在输出汉字的时候会被转义

$arr4 = array('t1'=>'测试下中文汉字','t2'=>'www.jd.com','t3'=>'','t4'=>"!@#$%^&*",'t5'=>'汉字+www.jd.com+465454');
print_r(json_encode($arr4));exit;

输出结果:(汉字都会被转义

{"t1":"\u6d4b\u8bd5\u4e0b\u4e2d\u6587\u6c49\u5b57","t2":"www.jd.com","t3":"123456789","t4":"!@#$%^&*","t5":"\u6c49\u5b57+www.jd.com+465454"}

4.如何保证json_encode不被转义

$arr5 = array('t1'=>urlencode('测试下中文汉字'));    // 重点1
print_r(urldecode(json_encode($arr5))); // 重点2

输出结果:

{"t1":"测试下中文汉字"}

5.urlencode,json_encode,urldecode使用

$arr6 = urlencode('测试下中文汉字');
print_r($arr6);
print_r(json_encode($arr6));
print_r(urldecode($arr6));
print_r(urldecode(json_encode($arr6)));

输出结果:

%E6%B5%8B%E8%AF%%E4%B8%8B%E4%B8%AD%E6%%%E6%B1%%E5%AD%97       // $arr6 输出
"%E6%B5%8B%E8%AF%95%E4%B8%8B%E4%B8%AD%E6%96%87%E6%B1%89%E5%AD%97" // json_encode输出
测试下中文汉字 // urldecode输出结果
"测试下中文汉字" // urldecode+json_encode输出结果

5.1 JSON_UNESCAPED_UNICODE (非常好用)

json_encode("中华人民共和国",JSON_UNESCAPED_UNICODE) // php 版本必须大于5.4

输出结果:"中华人民共和国"

6.Jquery调取php的json_encode内容

php代码

$arr = Array
(
[goods_id] =>
[goods_sn] => LX000000
[goods_name] => 保税区直发 德国Aptamil爱他美婴幼儿配方奶粉Pre段800g 【2罐起发】
)
echo json_encode($arr)

输出格式

{"id":"","user_id":"","goods_id":"","goods_stock":"","goods_sn":"LX000000","shop_price":}

js输出json格式内容

function t(n,v){
res = Ajax.call('user.php?act=depot_id', 'id=1',null,"GET", "JSON",false); var goods_title = "#goods_title_"+n;
var goods_name = "#goods_name_"+n;
var goods_price = "#goods_price_"+n; $(goods_title).val(res.goods_title);
$(goods_name).val(res.goods_name);
$(goods_price).val(res.goods_price); alert(res.goods_name);
//document.getElementById(div).value = '11';
}

 7.json_decode 有stdClass Object,解决办法json_decode($s,true),

$s = '[{"goods_id":"2","goods_num":2,"goods_name":"u8377u5170Nutrilonu725bu680fu5976u7c89 u30102u7f50u8d77u53d1u3011"},{"goods_id":"2","goods_num":2,"goods_name":"u8377u5170Nutrilonu725bu680fu5976u7c89 u30102u7f50u8d77u53d1u3011"}]';

$f = json_decode($s);

输出:

Array
(
[] => stdClass Object
(
[goods_id] =>
[goods_num] =>
[goods_name] => u8377u5170Nutrilonu725bu680fu5976u7c89 u30102u7f50u8d77u53d1u3011
) [] => stdClass Object
(
[goods_id] =>
[goods_num] =>
[goods_name] => u8377u5170Nutrilonu725bu680fu5976u7c89 u30102u7f50u8d77u53d1u3011
) )

解决办法:

$f = json_decode($s,true);
print_r($f);

输出:

Array
(
[] => Array
(
[goods_id] =>
[goods_num] =>
[goods_name] => u8377u5170Nutrilonu725bu680fu5976u7c89 u30102u7f50u8d77u53d1u3011
) [] => Array
(
[goods_id] =>
[goods_num] =>
[goods_name] => u8377u5170Nutrilonu725bu680fu5976u7c89 u30102u7f50u8d77u53d1u3011
) )

8.json汉字被转义 JSON_UNESCAPED_UNICODE 最简单方法

return json_encode($arr, JSON_UNESCAPED_UNICODE);   //  php 5.3以上版本可以使用 (JSON_UNESCAPED_UNICODE)

json_encode详解,转义的更多相关文章

  1. json_encode详解

    <?php $json = Array ( "a" => "php" , "b" => "mysql" ...

  2. PHP 5.2、5.3、5.4、5.5、5.6 对比以及功能详解

    php5.2.x php5.3.x php5.4.x php5.5.x php5.6.x 对比详解 截至目前(2014.2), PHP 的最新稳定版本是 PHP5.5, 但有差不多一半的用户仍在使用已 ...

  3. 微信JS-SDK之图像接口开发详解

    由于现在手头的项目中有一个上传证件照认证的功能(手机端),之前的思路是直接点击上传,然后直接将图片上传到服务器去,这篇文章有讲到(http://www.cnblogs.com/it-cen/p/453 ...

  4. 基于H5的微信支付开发详解

    这次总结一下用户在微信内打开网页时,可以调用微信支付完成下单功能的模块开发,也就是在微信内的H5页面通过jsApi接口实现支付功能.当然了,微信官网上的微信支付开发文档也讲解的很详细,并且有实现代码可 ...

  5. logback 常用配置详解<appender>

    logback 常用配置详解 <appender> <appender>: <appender>是<configuration>的子节点,是负责写日志的 ...

  6. Python中操作mysql的pymysql模块详解

    Python中操作mysql的pymysql模块详解 前言 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同.但目前pymysql支持python3.x而后者不支持 ...

  7. ****基于H5的微信支付开发详解[转]

    这次总结一下用户在微信内打开网页时,可以调用微信支付完成下单功能的模块开发,也就是在微信内的H5页面通过jsApi接口实现支付功能.当然了,微信官网上的微信支付开发文档也讲解的很详细,并且有实现代码可 ...

  8. SQL注入攻防入门详解

    =============安全性篇目录============== 本文转载 毕业开始从事winfrm到今年转到 web ,在码农届已经足足混了快接近3年了,但是对安全方面的知识依旧薄弱,事实上是没机 ...

  9. 李洪强iOS经典面试题156 - Runtime详解(面试必备)

    李洪强iOS经典面试题156 - Runtime详解(面试必备)   一.runtime简介 RunTime简称运行时.OC就是运行时机制,也就是在运行时候的一些机制,其中最主要的是消息机制. 对于C ...

随机推荐

  1. ActiveMQ(七)_伪集群和主从高可用使用

      一.本文目的         介绍如何在同一台虚拟机上搭建高可用的Activemq服务,集群数量包含3个Activemq,当Activemq可用数>=2时,整个集群可用.         本 ...

  2. 【POJ 3415】Common Substrings 长度不小于k的公共子串的个数

    长度不小于k的公共子串的个数,论文里有题解,卡了一上午,因为sum没开long long!!! 没开long long毁一生again--- 以后应该早看POJ里的Discuss啊QAQ #inclu ...

  3. js类型转换的坑

    JS的灵活 说好听是说JS灵活, 说不好听就是JS的坑太多, JS类型转换就是一个大坑, JS的类型包括了原始类型的[null, undefined, String ,Number, Boolean] ...

  4. ivy,ivyde插件-eclipse

    官方共享更新磁盘下载 http://www.apache.org/dist/ant/ivyde/updatesite/ http://ant.apache.org/ivy/download.cgi 简 ...

  5. AS技巧合集「编码技巧篇」

    转载:http://www.apkbus.com/forum.php?mod=viewthread&tid=254725&extra=page%3D2%26filter%3Dautho ...

  6. 安装vmall5:从ebak恢复数据,需要配置php.ini

    上传vmall5源码到服务器后访问ebak目录,发现网页不显示.用xshell登录到服务器手动执行ebak/index.php查看输出,发现这样一个错误: PHP Parse Error: synta ...

  7. 【BZOJ-3895】取石子 记忆化搜索 + 博弈

    3895: 取石子 Time Limit: 1 Sec  Memory Limit: 512 MBSubmit: 263  Solved: 127[Submit][Status][Discuss] D ...

  8. webapi获取IP的方式

    using System.Net.Http; public static class HttpRequestMessageExtensions { private const string HttpC ...

  9. CSS3伪类选择器:nth-child()(nth-child(odd)/nth-child(even))

    nth-child(odd):奇数 nth-child(even):偶数 使用时,如果是精确到数字时,切记是从同一级别的元素开始计算,而不是指定某个类才开始计算. 比如: <li>< ...

  10. SqlServerException:拒绝对表对象的select,insert权限解决(新建账号导致的问题)

    继上一篇文章所述的问题,这次又出现了不能插入的问题.经过定位,也是由于我多选择了一个数据库用户角色的权限导致的,下面是详细的操作步骤 SqlServerException:拒绝了对对象 '...'(数 ...