PHP json_decode 对 JSON 格式的字符串进行编码并获取对应的值
关于PHP中对JSON 格式的字符串进行编码并解析,同时可使用正则来获取内容,看示例: 字符串:
{"resp": {"userid": 0, "ret": 0, "subfile_list": [{"gcid": "78FDC87F885EBF1923A5382436419872C71C8D30", "url_hash": "13736464574634719728", "name": "BYD-01/BYD-01.avi", "index": 2, "cid": "E112D7A9BA040D70B0E2B21526239C08393DFC5A", "file_size": 1337602048, "duration": 6553502}, {"gcid": "A78B0E63F56E2F763464837C209AE3B63D14393D", "url_hash": "10856942115347464666", "name": "BYD-02/BYD-02.avi", "index": 5, "cid": "BEB495E1C450F35A3074666F1018243F81706962", "file_size": 941570998, "duration": 6646814}], "main_task_url_hash": "5800245063447153290", "info_hash": "7BD4D21057A3FE850896D2E9790D31A986C09732", "record_num": 12}}
要求:获取上述字符串中的 gcid 内容 方法一:我们可以使用正则的方式将其进行提取
$str = '{"resp": {"userid": 0, "ret": 0, "subfile_list": [{"gcid": "78FDC87F885EBF1923A5382436419872C71C8D30", "url_hash": "13736464574634719728", "name": "BYD-01/BYD-01.avi", "index": 2, "cid": "E112D7A9BA040D70B0E2B21526239C08393DFC5A", "file_size": 1337602048, "duration": 6553502}, {"gcid": "A78B0E63F56E2F763464837C209AE3B63D14393D", "url_hash": "10856942115347464666", "name": "BYD-02/BYD-02.avi", "index": 5, "cid": "BEB495E1C450F35A3074666F1018243F81706962", "file_size": 941570998, "duration": 6646814}], "main_task_url_hash": "5800245063447153290", "info_hash": "7BD4D21057A3FE850896D2E9790D31A986C09732", "record_num": 12}}'; preg_match('/"gcid":\s*"([a-zA-Z0-9]*)"/', $str, $matches); //var_dump($obj); print_r($matches[1]);
如果要获取name的值,则应如下表现
preg_match_all('/"name":\s*"([\w\d\.-]*)"/', $str, $matches); //var_dump($obj); print_r($matches[1]);
做到这里,也许你会发现当你的字符串中含有两个或更多gcid时,你就不能同时获取这些内容了,但PHP的正则就是这么的强大,你完全可以将preg_match替换成preg_match_all,就可以获取所有的gcid内容了 方法二:则利用JSON对象的属性对内容进行获取
$str = '{"resp": {"userid": 0, "ret": 0, "subfile_list": [{"gcid": "78FDC87F885EBF1923A5382436419872C71C8D30", "url_hash": "13736464574634719728", "name": "BYD-01/BYD-01.avi", "index": 2, "cid": "E112D7A9BA040D70B0E2B21526239C08393DFC5A", "file_size": 1337602048, "duration": 6553502}, {"gcid": "A78B0E63F56E2F763464837C209AE3B63D14393D", "url_hash": "10856942115347464666", "name": "BYD-02/BYD-02.avi", "index": 5, "cid": "BEB495E1C450F35A3074666F1018243F81706962", "file_size": 941570998, "duration": 6646814}], "main_task_url_hash": "5800245063447153290", "info_hash": "7BD4D21057A3FE850896D2E9790D31A986C09732", "record_num": 12}}'; $obj = json_decode($str); //var_dump($obj); print_r($obj->resp->subfile_list[0]->gcid);
好了,两种方法均获取成功~
PHP json_decode 对 JSON 格式的字符串进行编码并获取对应的值相关推荐
- 在PHP代码中处理JSON 格式的字符串的两种方法:
总结: 在PHP代码中处理JSON 格式的字符串的两种方法: 方法一: $json= '[{"id":"1","name":"\u ...
- C# JSON格式的字符串读取到类中
2019独角兽企业重金招聘Python工程师标准>>> 将JSON格式的字符串读取到类中 本例中建立JSON格式的字符串json,将其内容读取到Person类中 运行本代码需要添加引 ...
- json格式的字符串转为json对象遇到特殊字符问题解决
中午做后台发过来的json的时候转为对象,可是有几条数据一直出不来,检查发现json里包含了换行符,造成这种情况的原因可能是编辑部门在编辑的时候打的回车造成的 假设有这样一段json格式的字符串 1 ...
- javascript解析json格式的字符串,拼接后显示到表格中
知识点 解析json格式的字符串 拼接的HTML设置到tbody当中 加载json格式的对象 结果演示 html代码 <!DOCTYPE html> <html><hea ...
- [转]C# 将类的内容写成JSON格式的字符串
将类的内容写入到JSON格式的字符串中 本例中建立了Person类,赋值后将类中内容写入到字符串中 运行本代码需要添加引用动态库Newtonsoft.Json 程序代码: using System; ...
- Java中json格式的字符串数组,list,json,map相互转换
日常开发中免不了和json格式的字符串数组,list,json,map打交道,因此这篇文章的着重点就是这四者的相互转换 1.json格式的字符串数组转list String json = " ...
- java js对象转字符串数组_js 转json格式的字符串为对象或数组(前后台)的方法
一.前台 // 转换成对象 var myObject = JSON.parse(_data); alert("对象:"+myObject.msg); // 转换成数组 var my ...
- JSON对象中的函数调用,JSON格式的字符串对应的函数调用方法
json对象中的函数调用:直接使用 json变量名+函数名+()进行调用,特别注意这对括号:如果是获取到的json格式的字符串,想要调用它的方法前,需要先将该字符串转换成json对象,在调用对应的方法 ...
- [转载] python判断是否为json_Python判断变量是否为Json格式的字符串示例
参考链接: Python-Json 3 : python中验证是否为有效JSON数据 Python判断变量是否为Json格式的字符串示例 Json介绍 全名JavaScript Object Nota ...
最新文章
- android ORM 框架 search
- [HTML]JS添加表格
- 更改ORACLE归档路径及归档模式
- 骰子的妙用---课堂答题
- 中国非动物胶市场来产销需求及发展潜力研究报告2022版
- ROS(3)订阅者subscriber编程实现
- Curator操作ZooKeeper
- 阿里云CentOS-7.2安装mysql
- html模板替换值,Go语言多值替换的HTML模板实例分析
- 汉诺塔c++_C语言,递归解决汉诺塔问题
- java usb camera_Android usb camera设备添加
- Maple公式推导教程
- 谷歌浏览器显示弹框登陆代理解决方法
- 下行文格式图片_下行文标准模版
- 尚硅谷SpringCloud2020简单学习记录(个人用)33-39集
- win10桌面无法新建文件夹解除管理员权限方法
- win7设置背景色保护视力
- Atlassian Bamboo 安装
- CentOS 8 配置 authorized_keys 免密登录后,免密登录失败的排查以及最终的解决
- HDU - 5956 The Elder——斜率优化dp
热门文章
- scala 主构造函数_Scala-构造函数
- java面试题五 十六进制
- 印度程序培训之ISAS考试方法及评分参考准则
- mybatis 配置文件报错:Referenced file contains errors(file:/D:/config/ mybatis-3-mapper.dtd).
- java 异常堆栈输出_打印Java异常堆栈信息
- TensorFlow学习笔记(十一)读取自己的数据进行训练
- TensorFlow学习笔记(一)安装、配置、基本用法
- Scrapy匹配xpath时tbody标签的问题
- mvn spring-boot:run 增加jvm启动参数
- 简述分布式一致性协议(2pc、3pc、paxos、zab)