php數(shù)組如何轉(zhuǎn)化為json并去掉雙引號

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

創(chuàng)新互聯(lián)專注于當雄企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計,成都商城網(wǎng)站開發(fā)。當雄網(wǎng)站建設(shè)公司,為當雄等地區(qū)提供建站服務(wù)。全流程按需求定制制作,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

首先,我們來看一下 json_encode 函數(shù)默認生成的 JSON 字符串格式:

$arr = array('name' => '張三', 'age' => 18, 'gender' => 'male');
$jsonStr = json_encode($arr);
echo $jsonStr;

上述代碼的輸出結(jié)果為:

{"name":"張三","age":18,"gender":"male"}

可以看到,JSON 字符串中的屬性名都用雙引號包裹起來了。

如果我們想去掉雙引號,可以使用 PHP 的反射機制。如果讀者不熟悉反射,可以在閱讀本篇文章后再進行學習。

下面是一個實現(xiàn)將 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,它接收一個數(shù)組作為參數(shù)并將其保存在 $originalData 屬性中。getJson 方法用于將 $originalData 中的數(shù)組轉(zhuǎn)換成不包含雙引號的 JSON 字符串:

首先,我們調(diào)用 json_encode 函數(shù)將原始數(shù)據(jù)轉(zhuǎn)換為 JSON 字符串,然后使用 PHP 內(nèi)置的正則表達式引擎 preg_replace_callback 方法將 JSON 字符串中的屬性名用回調(diào)函數(shù)中返回的字符串替代?;卣{(diào)函數(shù)的作用是判斷一個匹配到的字符串是否為字符串類型,如果是,就返回不包含雙引號的字符串,如果不是,則原樣返回該字符串。

$arr = array('name' => '張三', 'age' => 18, 'gender' => 'male');
$jsonStr = (new JsonWithoutQuotes($arr))->getJson();
echo $jsonStr;

實際運行效果:

{name:"張三",age:18,gender:"male"}

可以看到,現(xiàn)在 JSON 字符串中的屬性名已經(jīng)去除了雙引號。

以上就是關(guān)于“php數(shù)組如何轉(zhuǎn)化為json并去掉雙引號”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

分享題目:php數(shù)組如何轉(zhuǎn)化為json并去掉雙引號
文章網(wǎng)址:http://muchs.cn/article24/joosje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)自適應(yīng)網(wǎng)站、網(wǎng)站設(shè)計、軟件開發(fā)、虛擬主機

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)