首页 > 解决方案 > PHP 中的 JSON 到 .CSV

问题描述

我的 JSON 数据如下所示。它没有 [] 或用逗号分隔,这使我难以解码。

$jsondata = 
  '{"firstname": "user1", "lastname": "user1", "phonenumber": "12314", "notes": "[]", "lastvisited": "2021-05-12 21:49:15"}
  {"firstname": "user2", "lastname": "user2", "phonenumber": "12345", "notes": "[]", "lastvisited": "2021-04-24 20:48:58"}';

我的尝试:

$jsonans = json_decode($jsondata, true);
print_r($jsonans);

任何代码建议表示赞赏。

谢谢,

标签: phpjson

解决方案


您最好的选择是获取有效的 JSON。如果这被存储在某处无效并且这些是唯一的问题,那么只需修复它们:

$jsondata = '['.preg_replace('/}\s+{/', '}, {', $jsondata).']';
$result   = json_decode($jsondata, true);

如果您确定只有一个空格}{然后比正则表达式更快:

$jsondata = '['.str_replace('} {', '}, {', $jsondata).']';

然后只需循环$resulthttps://www.php.net/manual/en/function.fputcsv.php


推荐阅读