使用PHP

时间:2019-01-07 16:32:13

标签: javascript php json string

这是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解析它,由于

,它不是干净的JSON格式,因此我们无法在PHP中使用
"dimensionsDisplayType"  : [
            "dropdown","swatch",
        ]

包含诸如“ dimensionsDisplayType”之类的对象的键可能是不可预测的,因此使用regex进行清理将无济于事。

有效的是

JSON.stringify(dataToReturn)

但是对于我而言,我无法运行客户端代码,因此必须使用PHP在服务器端将其转换为正确的JSON格式。我在网上搜索了很多东西,但没有任何令人满意的功能或库。

如何解决?

1 个答案:

答案 0 :(得分:0)

您可以尝试使用此正则表达式清除字符串,这将查找逗号,后跟可选的空格和close],然后将其替换为内容减去逗号...

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