json_decode() --- 对 JSON 格式的字符串进行解码

1、用法:

mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )

参数说明:

  • $json: json格式的字符串

  • $assoc:

    • 值为true: 表示返回数组形式的数据
    • 值为false:表示返回对象形式的数据
    • 默认为false
  • $depth:指定递归深度。

  • $options: JSON解码的掩码选项。 现在有两个支持的选项。

    • 第一个是JSON_BIGINT_AS_STRING, 用于将大整数转为字符串而非默认的float类型。
    • 第二个是JSON_OBJECT_AS_ARRAY, 与将assoc设置为 TRUE 有相同的效果。

2、范例:

$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'

  • json_decode($json);

    object(stdClass)#1 (5) {

    ["a"] => int(1)

    ["b"] => int(2)

    ["c"] => int(3)

    ["d"] => int(4)

    ["e"] => int(5)

    }

  • json_decode($json, true);

    array(5) {

    ["a"] => int(1)

    ["b"] => int(2)

    ["c"] => int(3)

    ["d"] => int(4)

    ["e"] => int(5)

    }

3、应用场景:

有返回的数据$modeofpayment,需要对其进行循环输出每条数据。如何实现?

其中:$modeofpayment = [{"id":1,"name":"货到付款"},{"id":2,"name":"支付宝付款"},{"id":3,"name":"微信付款"}];

(1)var_dump()打印结果为string '[{"id":1,"name":"货到付款"},{"id":2,"name":"支付宝付款"},{"id":3,"name":"微信付款"}]'

其数据类型为string

(2)将数据转化为数组形式:json_decode($json, true)。得到结果为:

array (size=3)
0 =>
array (size=2)
'id' => int 1
'name' => string '货到付款' (length=12)
1 =>
array (size=2)
'id' => int 2
'name' => string '支付宝付款' (length=15)
2 =>
array (size=2)
'id' => int 3
'name' => string '微信付款' (length=12)

(3)使用模板引擎循环输出

{foreach name="$offer.modeofpayment" item="vo"}
<label class="iconfont wx">
<input type="radio" name="paymentmode" value="{$vo.id}" /> {$vo.name}
</label>
{/foreach}

或者

{volist name="$offer.modeofpayment" id="vo"}
<label class="iconfont wx">
<input type="radio" name="paymentmode" value="{$vo.id}" /> {$vo.name}
</label>
{/volist}

【PHP函数】json_decode() ---- 对 JSON 格式的字符串进行解码的更多相关文章

  1. json格式的字符串转为json对象遇到特殊字符问题解决

    中午做后台发过来的json的时候转为对象,可是有几条数据一直出不来,检查发现json里包含了换行符,造成这种情况的原因可能是编辑部门在编辑的时候打的回车造成的 假设有这样一段json格式的字符串 va ...

  2. 在PHP代码中处理JSON 格式的字符串的两种方法:

    总结: 在PHP代码中处理JSON 格式的字符串的两种方法: 方法一: $json= '[{"id":"1","name":"\u ...

  3. JavaScript中,JSON格式的字符串与JSON格式的对象相互转化

    前言:JSON是一个独立于任何语言的数据格式,因此,严格来说,没有“JSON对象”和“JSON字符串”这个说法(然而”菜鸟教程“和”W3school“使用了“JSON对象”和“JSON字符串”这个说法 ...

  4. JSon_零基础_006_将JSon格式的字符串转换为Java对象

    需求: 将JSon格式的字符串转换为Java对象. 应用此技术从一个json对象字符串格式中得到一个java对应的对象. JSONObject是一个“name.values”集合, 通过get(key ...

  5. 解决如下json格式的字符串不能使用DataContractJsonSerializer序列化和反序列化 分类: JSON 2015-01-28 14:26 72人阅读 评论(0) 收藏

    可以解决如下json格式的字符串不能使用DataContractJsonSerializer反序列化 {     "ss": "sss",     " ...

  6. android实现json数据的解析和把数据转换成json格式的字符串

    利用android sdk里面的 JSONObject和JSONArray把集合或者普通数据,转换成json格式的字符串 JSONObject和JSONArray解析json格式的字符串为集合或者一般 ...

  7. C#将datatable的某一列转换成json格式的字符串

    将datatable的某一列转换成json格式的字符串(转换完后自己在字符串前后加{}) /// <summary> ///DataTable装换 Column数据 组合成json 现在的 ...

  8. 校验字符串是否是JSON格式,将不规则展示的json格式的字符串进行规则展示(json格式化)

    版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[+]   var str = {"code": "","svcname" ...

  9. 获取JSON格式的字符串各个属性对应的值

    {"lastrdtime":1515998187379,"creditbalance":"$5.00","contactmode& ...

随机推荐

  1. jQuery实现的上下滚动公告栏详细讲解

    之前做项目的时候,一直都想着做一个上下滚动的公告栏,作为展示网站的最新公告信息,因为刚开始自己的思路并不是太清晰,在网上找了很多的源码,但是却发现都不能让自己满意,有的还会出现一些小问题,比如,有时候 ...

  2. css文字属性

    font-family- css字体:设定时,需考虑浏览器中有无该字体. 比如说“黑体”  “微软雅黑” font-size -css字体大小: 注意度量html单位.例如:font-size:18p ...

  3. textarea 元素的 placeholder 属性不显示

    <textarea> 标签定义多行的文本输入控件. placeholder:描述文本区域预期值的简短提示. textarea 的 placeholder 属性值不显示的原因可能是 < ...

  4. CentOS7系列--2.2CentOS7中配置SSH服务

    CentOS7配置SSH服务 1. SSH配置 1.1. 使用SSH服务更加安全 [root@centos7 ~]# vi /etc/ssh/sshd_config 设置如下 PermitRootLo ...

  5. 一步一步 Pwn RouterOS之调试环境搭建&&漏洞分析&&poc

    前言 本文由 本人 首发于 先知安全技术社区: https://xianzhi.aliyun.com/forum/user/5274 本文分析 Vault 7 中泄露的 RouterOs 漏洞.漏洞影 ...

  6. Condition使用

    面试题:写一个固定容量同步容器,拥有put和get方法,以及getCount方法,    能够支持2个生产者线程以及10个消费者线程的阻塞调用 有两种方法 1.使用wait和notify/notify ...

  7. maven 安装与配置最佳实践

    配置Maven环境变量 1.新建 maven home 环境变量      变量名:M2_HOME     变量值:D:\ProgramFiles\apache-maven-3.5.4       2 ...

  8. leetCode题解之根据字符出现的频率排序

    1.题目描述 Given a string, sort it in decreasing order based on the frequency of characters. Example 1: ...

  9. eclipse导入spring aop xml约束

    步骤: 1. 2. 3. 4.取  Location:中最后一个命名:spring-aop-4.2.xsd,放到Key的最后面,Key type:选择 Schema location.点击OK 5.编 ...

  10. [翻译] STAlertView

    STAlertView The idea of this component is to improve the readability while using the native UIAlertV ...