簡體   English   中英

使用PHP將包含JavaScript對象的字符串轉換為JSON字符串

[英]convert a string containing JavaScript object to a JSON string with PHP

這是javascript對象(只是其中的一小部分):

dataToReturn = {
        "dimensionsDisplayType"  : [
            "dropdown","swatch",
        ],
        "pwEnabledDimensionMap" : {

            "size_name": true,

            "color_name": true

        },
        "isPWBadgeEnabled" : true,
        "isImmersiveExperience" : false,
        "isTabletWeb" : false
}

因此,在PHP中它將如下所示:

<?php
    $jsObjStr = '{
            "dimensionsDisplayType"  : [
                "dropdown","swatch",
            ],
            "pwEnabledDimensionMap" : {

                "size_name": true,

                "color_name": true

            },
            "isPWBadgeEnabled" : true,
            "isImmersiveExperience" : false,
            "isTabletWeb" : false
    }';

但是如果我們想用json parse解析它,我們就不能在PHP中使用,因為它不是干凈的JSON格式,因為

"dimensionsDisplayType"  : [
            "dropdown","swatch",
        ]

包含諸如“ dimensionsDisplayType”之類的對象的鍵可能是不可預測的,因此使用regex進行清理不會有太大幫助。

有效的是

JSON.stringify(dataToReturn)

但就我而言,我無法運行客戶端代碼,因此必須使用PHP在服務器端將其轉換為正確的JSON格式。 我在網上搜索了很多東西,但沒有任何令人滿意的功能或庫。

如何解決呢?

您可以嘗試使用此正則表達式清理字符串,這將查找逗號,后跟可選的空格和close],然后將其替換為內容減去逗號。

$jsObjStr = preg_replace("/,(\s*?])/", "$1", $jsObjStr);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM