PHP中JSON应用

      自从PHP5.2开始的这个版本增加了对JSON的支持。主要包含两个函数:json_encode和json_decode。

      JSON是一种数据的存储格式,就像PHP序列化后的字符串一样。也是一种数据描述,比如我们将一个数组序列化后存放,就可以很容易的反序列化后应用。JSON也是如此,只不过他搭建的是客户端Javascript和服务端PHP的交互桥梁。我们用PHP生成JSON后的字符串,然后把这个字符串传给前台Javascript,Javascirpt就可以很容易的将其反JSON然后应用。

    以下是举例:

有文件:brand1.json,内容如下,通过观察就会发现JSON的格式很像数组:

 以下是PHP代码:

 

      以上代码通过PHP的文件操作读取brand1.json文件,读取到的是brand1.json文件中的字符串内容,再通过第3行json_decode将此字符串解码,返回对象为数组对象。print_r($obj)打印的结果如下:

      通过输出的结果可以看出的确是数组,brand1.json中的两个元素分别被生成为两个stdClass Object对象放在数组中,在程序中输出对象的值是通过调用对象的属性来获取,如:$obj[$i]->cName。还有一种情况,第3行代码改为:$obj = json_decode($content,true);   可以将取出的JSON对象直接转变成数组而不是stdClass Object对象,以下是第4行代码输出的结果:

 

    和上图对比,会发现存储于数组中的不再是stdClass Object,而是Array。我们需要注意的是:在取出数据时就要换数组的方式来取值:$obj[$i]['cName'],而不能再用对象访问属性的方式来得到数据,如:$obj[$i]->cName,虽然不报错,但你什么都取不到。我们倒过来说,如果我们用了第一种方式解析数据,我们就只能用$obj[$i]->cName来访问数据,如果换成$obj[$i]['cName'],那就会有错误信息等着你了:

 

 Fatal error: Cannot use object of type stdClass as array in D:/wamp/www/cj/data/test.php on line 8

 

 

    错误信息已经把问题描述得很清楚了,仅此而已,在不同的场合选择合适的方式,没有其他区别。 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值