PHP处理JSON字符串key缺少双引号的解决方法_php技巧
json
key
php
處理
字串
解決方法
本文实例讲述了PHP处理JSON字符串key缺少引号的解决方法,分享给大家供大家参考之用。具体方法如下:
通常来说,JSON字符串是key:value形式的字符串,正常key是由双引号括起来的。
例如:
<?php $data = array('name'=>'fdipzone'); echo json_encode($data); // {"name":"fdipzone"} print_r(json_decode(json_encode($data), true)); //Array ( [name] => fdipzone ) ?>
登入後複製
但如果json字符串的key缺少双引括起来,则json_decode会失败。
<?php $str = '{"name":"fdipzone"}'; var_dump(json_decode($str, true)); // array(1) { ["name"]=> string(8) "fdipzone" } $str1 = '{name:"fdipzone"}'; var_dump(json_decode($str1, true)); // NULL ?>
登入後複製
解决方法:判断是否存在缺少双引括起来的key,如缺少则先用正则替换为"key",再进行json_decode操作。
<?php /** 兼容key没有双引括起来的JSON字符串解析 * @param String $str JSON字符串 * @param boolean $mod true:Array,false:Object * @return Array/Object */ function ext_json_decode($str, $mode=false){ if(preg_match('/\w:/', $str)){ $str = preg_replace('/(\w+):/is', '"$1":', $str); } return json_decode($str, $mode); } $str = '{"name":"fdipzone"}'; var_dump(ext_json_decode($str, true)); // array(1) { ["name"]=> string(8) "fdipzone" } $str1 = '{name:"fdipzone"}'; var_dump(ext_json_decode($str1, true)); // array(1) { ["name"]=> string(8) "fdipzone" } ?>
登入後複製
希望本文所述对大家PHP程序设计的学习有所帮助。
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前
By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
R.E.P.O.保存文件位置:在哪里以及如何保護它?
3 週前
By DDD

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發
