关于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 格式的字符串进行编码并获取对应的值相关推荐

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

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

  2. C# JSON格式的字符串读取到类中

    2019独角兽企业重金招聘Python工程师标准>>> 将JSON格式的字符串读取到类中 本例中建立JSON格式的字符串json,将其内容读取到Person类中 运行本代码需要添加引 ...

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

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

  4. javascript解析json格式的字符串,拼接后显示到表格中

    知识点 解析json格式的字符串 拼接的HTML设置到tbody当中 加载json格式的对象 结果演示 html代码 <!DOCTYPE html> <html><hea ...

  5. [转]C# 将类的内容写成JSON格式的字符串

    将类的内容写入到JSON格式的字符串中 本例中建立了Person类,赋值后将类中内容写入到字符串中 运行本代码需要添加引用动态库Newtonsoft.Json 程序代码: using System; ...

  6. Java中json格式的字符串数组,list,json,map相互转换

    日常开发中免不了和json格式的字符串数组,list,json,map打交道,因此这篇文章的着重点就是这四者的相互转换 1.json格式的字符串数组转list String json = " ...

  7. java js对象转字符串数组_js 转json格式的字符串为对象或数组(前后台)的方法

    一.前台 // 转换成对象 var myObject = JSON.parse(_data); alert("对象:"+myObject.msg); // 转换成数组 var my ...

  8. JSON对象中的函数调用,JSON格式的字符串对应的函数调用方法

    json对象中的函数调用:直接使用 json变量名+函数名+()进行调用,特别注意这对括号:如果是获取到的json格式的字符串,想要调用它的方法前,需要先将该字符串转换成json对象,在调用对应的方法 ...

  9. [转载] python判断是否为json_Python判断变量是否为Json格式的字符串示例

    参考链接: Python-Json 3 : python中验证是否为有效JSON数据 Python判断变量是否为Json格式的字符串示例 Json介绍 全名JavaScript Object Nota ...

最新文章

  1. android ORM 框架 search
  2. [HTML]JS添加表格
  3. 更改ORACLE归档路径及归档模式
  4. 骰子的妙用---课堂答题
  5. 中国非动物胶市场来产销需求及发展潜力研究报告2022版
  6. ROS(3)订阅者subscriber编程实现
  7. Curator操作ZooKeeper
  8. 阿里云CentOS-7.2安装mysql
  9. html模板替换值,Go语言多值替换的HTML模板实例分析
  10. 汉诺塔c++_C语言,递归解决汉诺塔问题
  11. java usb camera_Android usb camera设备添加
  12. Maple公式推导教程
  13. 谷歌浏览器显示弹框登陆代理解决方法
  14. 下行文格式图片_下行文标准模版
  15. 尚硅谷SpringCloud2020简单学习记录(个人用)33-39集
  16. win10桌面无法新建文件夹解除管理员权限方法
  17. win7设置背景色保护视力
  18. Atlassian Bamboo 安装
  19. CentOS 8 配置 authorized_keys 免密登录后,免密登录失败的排查以及最终的解决
  20. HDU - 5956 The Elder——斜率优化dp

热门文章

  1. scala 主构造函数_Scala-构造函数
  2. java面试题五 十六进制
  3. 印度程序培训之ISAS考试方法及评分参考准则
  4. mybatis 配置文件报错:Referenced file contains errors(file:/D:/config/ mybatis-3-mapper.dtd).
  5. java 异常堆栈输出_打印Java异常堆栈信息
  6. TensorFlow学习笔记(十一)读取自己的数据进行训练
  7. TensorFlow学习笔记(一)安装、配置、基本用法
  8. Scrapy匹配xpath时tbody标签的问题
  9. mvn spring-boot:run 增加jvm启动参数
  10. 简述分布式一致性协议(2pc、3pc、paxos、zab)