php - 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);
任何代码建议表示赞赏。
谢谢,
解决方案
您最好的选择是获取有效的 JSON。如果这被存储在某处无效并且这些是唯一的问题,那么只需修复它们:
$jsondata = '['.preg_replace('/}\s+{/', '}, {', $jsondata).']';
$result = json_decode($jsondata, true);
如果您确定只有一个空格}
,{
然后比正则表达式更快:
$jsondata = '['.str_replace('} {', '}, {', $jsondata).']';
然后只需循环$result
和https://www.php.net/manual/en/function.fputcsv.php
推荐阅读
- flutter - inheritFromWidgetOfExactType 不适用于通用 InheritedWidget
- java - 使用 SharedPreferences 保存和加载不起作用
- jsf - 如何在不提交的情况下将用 p:editor primefaces 编写的文本发送到 java bean?
- java - 浏览器收不到服务器响应
- jmeter - Apache JMeter 中压力测试的持续时间是多少?
- python - 为什么我找到最长的递增子序列而不是最长的递减子序列?
- android - 为什么我的对话框布局无法正确展开?
- ios - 如何在我的应用中播放 iOS 的默认通知声音
- wpf - 如何在 Windows 窗体中托管基于 DryIoc 的 Prism WPF 应用程序?
- c# - 如何在 C# 中从 SignalR 集线器向客户端推送数据