Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 删除json中特定键值的双引号_Php_Json - Fatal编程技术网

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

Php 删除json中特定键值的双引号,php,json,Php,Json,我有一个json文件,其结构如下。我需要删除源“值”中的双引号 我需要它: { tags:[ { name: "video", cssanimate: "flipInY", source: { mp4: '1.mp4' } } ] } 我想也许我可以用preg_replace做点什么,但只能用“源密钥”。这样的事情可能吗 $json = json_encode($record

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

我需要它:

{
    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);

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

在数据库的源字段中有一个已编码的json,因此您只需在将其放入数组之前对其进行操作即可:

$records3 = array();
while ($row3 = $result3->fetch_assoc()) {
    $records3[] =
        array('tags' =>
                  array(
                      'name' => $row3['name'],
                      'cssanimate' => $row3['cssanimate'],
                      'source' => json_decode($row3['source'])
                  )
        );
}

这些示例看起来不像JSON。您首先从哪里获得
source
的值?rebuild$records corrective看起来
source
可能是json内部的json编码字符串,所以只需重新构建数组并解码
source
。啊,看起来json存储在数据库的source字段中。当然,在将
$row3
的值插入
$records3
@code\u secret如何在DB中填充它?如果字符串确实包含单个字符,json\u decode将返回falsequotes@aynber非常感谢!我觉得这是如此接近,但源返回“null”奇怪@艾恩伯,在解码之前,把单选的换成双选的。实际上,源代码中的json是无效的。它应该看起来像
{“mp4”:“1.mp4”}
而不是
{mp4:'1.mp4'}
。请注意键/值周围的双引号。数据是如何放入数据库的?@splash58它需要的不仅仅是这些,因为键也缺少引号。我会犹豫是否换一个,因为它可能会打断其他的弦。
$records3 = array();
while ($row3 = $result3->fetch_assoc()) {
    $records3[] =
        array('tags' =>
                  array(
                      'name' => $row3['name'],
                      'cssanimate' => $row3['cssanimate'],
                      'source' => json_decode($row3['source'])
                  )
        );
}