JSON

有关json_decode乱码及NULL的问题

字号+ 作者:H5之家 来源:H5之家 2015-10-15 18:33 我要评论( )

具体内容请看下文吧。 写接口的同学应该会经常遇到数据格式的转换,这时候必不可少的两个函数就是json_encode()和json_decode()。 这两个函数使用的时候有很多

有关json_decode乱码及NULL的问题

具体内容请看下文吧。

写接口的同学应该会经常遇到数据格式的转换,这时候必不可少的两个函数就是json_encode()和json_decode()。

这两个函数使用的时候有很多的主要事项,在这里我来说一下json_decode()。

json_decode(): 对JSON 格式的字符串进行解码,接受一个JSON 格式的字符串并且把它转换为 PHP 变量。

(1)将数据转换成数组之后,打印会显示NUll:

原因之一json_decode只支持utf-8.

iconv('gbk','utf-8', $result_string);用iconv函数将写入数据的gbk编码格式转换为要输出的utf-8编码格式,若原本的数据是utf-8格式,则不用此步骤,否则还会出现乱码

原因之二:json字符串必须以双引号包含

str_replace("'", '"', $result_string);//将json数据中的单引替换成双引

原因之三:不能有多余的逗号 如:[1,2,]

用正则替换掉,preg_replace('/,\s*([\]}])/m', '$1', $result_string);

(2)将数据转换成数组或者在转换成json格式数据之后,会显示乱码:

这时候要用到urlencode()和urldecode()

以下是我的代码,经试验有效

if(file_exists($result['save_path'])){ $contents=file_get_contents($result['save_path']);//将一个文件的内容写入,文件是utf-8格式,里面是json格式的数据 //$getcontent = iconv("gbk", "utf-8//ignore",$contents);//若文件原本是utf-8格式,无需转换 $getcontent=str_replace("'", '"',$contents);//将单引替换成双引 preg_replace('/,\s*([\]}])/m', '$1', $getcontent);//去掉多余的逗号 $new_array=array(); $new_array=json_decode($getcontent,true); $res=array(); foreach ($new_array as $key=>$val){ foreach ($new_array[$key]['items'] as $k=>$v){ if($k<$row){ $res[$k]['position']=$v['position']; $res[$k]['distance']=$v['distance']; $res[$k]['title']=urlencode($v['title']); $res[$k['vicinity']=urlencode($v['vicinity']); } } } if($res){ $new_res['items']=$res; }else{ $new_res['items']=""; } echo urldecode(json_encode($new_res)); }

以上内容是小编给大家分享的有关json_decode乱码及NULL的问题,希望对大家有所帮助。

推荐文章

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。

JS实现的车标图片提示效果代码 - 2015-10-13 17:10:08

本文实例讲述了JS实现的车标图片提示效果。分享给大家供大家参考。具体如下: 这是一款基于JavaScript的鼠标提示效果,名车车标展示提示效果-鼠标移过时显示车标图片,页面打开后并不显示车标,只有当鼠标移在车标上的时候,车标才突然出现,类似Js提示特效,本代码兼容性也写的不错,代码也并不复杂,大部分是调用图片的。 运行效果截图如下: 在线演示地址如下: 具体代码如下: !DOCTYPE h

- 2015-10-13 17:10:01

jquery是对javascript很好的封装,而且很轻量级,可以近似的将其称其为框架,下面就来对比javascript与jquery对ajax的实现,以突出jquery对其封装后,在实现方便的简易性,而且不仅如此,用jquery代替javascript来实现一些功能对于浏览器的兼容性也会带来意想不到的好处。 一、基本认识 1、JavaScript 定义: javaScript的简写形式就是JS,是由Netscape公司开发的一种脚本语言,一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动

一个php+js实时显示时间问题 - 2015-10-13 17:10:01

我们先来看下这段代码 $(function(){setInterval(function(){var timer = '?php echo date("Y-m-d H:i:s",time()) ?';$("#test").append(timer);},500);}); 这段代码哪里有问题,为啥网页加载后网页一直是那个时间不会变呢?php和js的加载机制有啥不同? 这样是不对的,php代码在输出前被解释,浏览器收到的代码应该是这个样子的 $(function(){ setInterval(function

- 2015-10-13 17:10:57

ajax应用非常普及,ajax的优点大家都知道,具体就不多说了,其缺点还真不少,比如破坏浏览器的back功能,同一个url打开的界面并不是完全相同,还有安全性能等方面,至于有这么多的缺点,也阻止不了大家使用ajax的步伐~~~ 这里以表单为例说一下实现Ajax的步骤: 1.先从表单中获取我们需要的数据 2.然后建立相应的URL 3.设置onreadystatechange函数 4.打开连接 5.发送请求 以上就是Ajax的实现步骤,接下来简单分步总结下。 首先是关于xrh对象的建立。 function c

- 2015-10-13 17:10:57

几十年来,函数式编程一直是计算机科学狂热者的至爱,由于数学的纯洁性和谜一般的本质, 它被埋藏在计算机实验室,只有数据学家和有希望获得博士学位的人士使用。但是现在,它正经历一场复兴, 这要感谢一些现代语言比如Python,Julia,Ruby,Clojure以及——但不是最后一个——Javascript。 你是说Javascript?这个WEB脚本语言?没错! Javascript已经被证明是一项长期以来都没有消失的重要的技术。这主要是由于它扩展的一些框架和库而使其具有重生的能力, 比如backbone.j

clipboard.js无需Flash无需依赖任何JS库实现文本复制与剪切 - 2015-10-13 17:10:57

我们在网页上放置一个复制按钮,主要用来方便用户复制链接之类的复杂文本,以往的做法是,通过JS依靠Flash,甚至借助jQuery庞大的js库来实现文本复制到剪贴板的。今天我要给大家介绍的是一款极现代的,不需要flash,不依赖任何其他js库的非常小的插件,它叫clipboard.js。 运行效果图: HTML 首先加载本地clipboard.js文件。 script src="clipboard.min.js"/script 然后就是在body中加上要复制或剪切的文本域内容以及按钮。 inputpanel panel-info">

表单验证插件Validation应用的实例讲解 - 2015-10-13 17:10:56

jquery.Validation是一款优秀的jquery插件,它能对客户端表单进行验证,并且提供了许多可以定制的属性和方法,良好的扩展性。现在结合实际情况,我把项目中经常要用到的验证整理成一个实例DEMO,本文就是通过讲解这个实例来理解Validation的应用。 本实例涉及到的验证有: 用户名:长度、字符验证,重复性ajax验证(是否已存在)。 密码:长度验证,重复输入密码验证。 邮件:邮件地址验证。 固定电话:中国大陆固定电话号码验证。 手机号:中国大陆手机号码验证。 网址:网站URL地址验证。 日

页面内容排序插件jSort使用方法 - 2015-10-13 17:10:54

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • php CI 实战教程:[5]用curl获取json并解析

    php CI 实战教程:[5]用curl获取json并解析

    2016-02-26 17:00

  •  JSON入门级学习总结-JSON数据结构

    JSON入门级学习总结-JSON数据结构

    2016-02-25 11:05

  • Android解析Json速度最快的库:json

    Android解析Json速度最快的库:json

    2016-02-13 18:00

  • JavaScript转换与解析JSON方法实例详解第1/2页

    JavaScript转换与解析JSON方法实例详解第1/2页

    2016-02-10 21:25

网友点评
"