這篇“php數組如何轉化為json并去掉雙引號”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“php數組如何轉化為json并去掉雙引號”文章吧。

創新互聯專注于當雄企業網站建設,響應式網站設計,成都商城網站開發。當雄網站建設公司,為當雄等地區提供建站服務。全流程按需求定制制作,專業設計,全程項目跟蹤,創新互聯專業和態度為您提供的服務
首先,我們來看一下 json_encode 函數默認生成的 JSON 字符串格式:
$arr = array('name' => '張三', 'age' => 18, 'gender' => 'male');
$jsonStr = json_encode($arr);
echo $jsonStr;上述代碼的輸出結果為:
{"name":"張三","age":18,"gender":"male"}可以看到,JSON 字符串中的屬性名都用雙引號包裹起來了。
如果我們想去掉雙引號,可以使用 PHP 的反射機制。如果讀者不熟悉反射,可以在閱讀本篇文章后再進行學習。
下面是一個實現將 JSON 字符串中的屬性名去掉雙引號的例子:
class JsonWithoutQuotes {
public function __construct($data) {
$this->originalData = $data;
}
public function getJson() {
$data = $this->originalData;
$jsonData = json_encode($data);
$jsonData = preg_replace_callback(
'/"(.*?)":/is',
function($matches) {
$match = $matches[1];
return is_string($match) ? $match.":" : $match;
},
$jsonData);
return $jsonData;
}
}上面的代碼中,我們使用了一個自定義的類 JsonWithoutQuotes,它接收一個數組作為參數并將其保存在 $originalData 屬性中。getJson 方法用于將 $originalData 中的數組轉換成不包含雙引號的 JSON 字符串:
首先,我們調用 json_encode 函數將原始數據轉換為 JSON 字符串,然后使用 PHP 內置的正則表達式引擎 preg_replace_callback 方法將 JSON 字符串中的屬性名用回調函數中返回的字符串替代。回調函數的作用是判斷一個匹配到的字符串是否為字符串類型,如果是,就返回不包含雙引號的字符串,如果不是,則原樣返回該字符串。
$arr = array('name' => '張三', 'age' => 18, 'gender' => 'male');
$jsonStr = (new JsonWithoutQuotes($arr))->getJson();
echo $jsonStr;實際運行效果:
{name:"張三",age:18,gender:"male"}可以看到,現在 JSON 字符串中的屬性名已經去除了雙引號。
以上就是關于“php數組如何轉化為json并去掉雙引號”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注創新互聯行業資訊頻道。
分享題目:php數組如何轉化為json并去掉雙引號
文章網址:http://www.yijiale78.com/article24/joosje.html
成都網站建設公司_創新互聯,為您提供商城網站、外貿網站建設、自適應網站、網站設計、軟件開發、虛擬主機
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯