猿问

从 json 中删除特定键值上的双引号

我有一个结构如下的 json 文件。我需要从源“值”中删除双引号


{

    tags:[

        {

            name: "video",

            cssanimate: "flipInY",

            source: "{ mp4: '1.mp4' }"

        }

    ]

}

我需要它是:


{

    tags:[

        {

            name: "video",

            cssanimate: "flipInY",

            source: { mp4: '1.mp4' }

        }

    ]

}

我想也许我可以用 preg_replace 做一些事情,但仅限于“源代码”。这样的事情可能吗?


$json = json_encode($records, JSON_PRETTY_PRINT);

$json = preg_replace('/"([^"]+)"\s*:\s*/', '$1:', $json);

任何帮助,将不胜感激 :)


烙印99
浏览 322回答 1
1回答

收到一只叮咚

在你的数据库的 source 字段中有一个已经编码的 json,所以你只需要在将它放入数组之前对其进行操作:$records3 = array();while ($row3 = $result3->fetch_assoc()) {    $records3[] =        array('tags' =>                  array(                      'name' => $row3['name'],                      'cssanimate' => $row3['cssanimate'],                      'source' => json_decode($row3['source'])                  )        );}
随时随地看视频慕课网APP
我要回答