php解析json格式的文本

Posted 互联网技术就业速成班

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php解析json格式的文本相关的知识,希望对你有一定的参考价值。

昨天,在我校的高级培训群里,有同学咨询了如何用php解析json格式的文本问题,老师发现这个问题比较典型,在此将相关的知识点总结分享给同学们,希望对其他同学掌握该知识点也能起到一些帮助。


同学jsoly提问说,有这样的一个数组$arr(如下图所示)


想转换为php的数组,该如何处理。

一眼望去就是个json格式的字符串,显然php里面不能这样定义,这样的定义会报语法错误,就像这样:

php解析json格式的文本


该同学认为用json格式存储数据比较简洁,问直接用json格式定义一个数组该怎么做。

老师提示用json_decode可以将json格式的字符串直接转换为php的变量。

于是该同学发出来如下的一段代码:

php解析json格式的文本
希望用foreach来遍历转换后的数组$arr,结果遇到了报错:

php解析json格式的文本
而且我们发现这是一个致命的错误,在foreach循环当中,无法将一个类的对象转换为字符串输出。


细心的同学会发现该同学用的是js对象的表示方法,如果把json内容当成是一个大的对象,那么里面包含了cn和en两个小对象,每个小对象当中又可以拆分为1,2两个对象,典型的key-value的结构。那么我们php里面有一个函数叫get_object_vars()就是用来解析对象格式的数据。于是老师给出了带有调试信息的代码,帮助该同学理解php的解析过程(如下图所示)。


请注意程序的开头用到了php多行字符串的技术。

我们调试的时候,最好用的输出函数,就是var_dump()函数,哪里不清楚,立刻var_dump()一下,就很清晰了。

最后,我们顺着该同学的思路实现的程序如下图所示:


在foreach循环里面输出了每个子对象的值,\n是换行符,在浏览器输出的时候请注意要替换为html标签<br/>


问题到此解决,需要补充说明的是,json_decode这个函数仅能处理 UTF-8 编码的数据。


希望同学们通过这个实战的案例,能加深对json基本概念的理解并在php中学会灵活应用json格式数据。



以上是关于php解析json格式的文本的主要内容,如果未能解决你的问题,请参考以下文章

如何在PHP中解析json

使用 C# 解析 JSON 文本文件

android h5返回json怎么解析

php 数组中有反斜杠,解析为json格式就变成\/这样怎么解决啊

“CSV格式转Json格式”Shell脚本解析

学习JSON