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