php - PHP:将复杂的 json 输出到 csv
问题描述
我正在寻找一种解决方案来呈现这样的 json 字符串:
{"result_count":5,"total_count":"1102","next_offset":5,"entry_list":[{"id":"00003010000000","module_name":"Contacts","name_value_list":{"id":{"name":"id","value":"00003010000000"},"name":{"name":"name","value":"Undefiniert"},"phone_work":{"name":"phone_work","value":""},"phone_mobile":{"name":"phone_mobile","value":"01"}}},{"id":"00003015000003","module_name":"Contacts","name_value_list":{"id":{"name":"id","value":"00003015000003"},"name":{"name":"name","value":"Christian X"},"phone_work":{"name":"phone_work","value":""},"phone_mobile":{"name":"phone_mobile","value":"0043 699 23231"}}},{"id":"00003015000005","module_name":"Contacts","name_value_list":{"id":{"name":"id","value":"00003015000005"},"name":{"name":"name","value":"Mario X"},"phone_work":{"name":"phone_work","value":"0043 1 232 151"},"phone_mobile":{"name":"phone_mobile","value":"0043 699 1112"}}},{"id":"00003015000006","module_name":"Contacts","name_value_list":{"id":{"name":"id","value":"00003015000006"},"name":{"name":"name","value":"Renate X"},"phone_work":{"name":"phone_work","value":"0043 1232 133"},"phone_mobile":{"name":"phone_mobile","value":""}}},{"id":"00003015000007","module_name":"Contacts","name_value_list":{"id":{"name":"id","value":"00003015000007"},"name":{"name":"name","value":"Harald KrX"},"phone_work":{"name":"phone_work","value":"0043 232 150"},"phone_mobile":{"name":"phone_mobile","value":"00423"}}}],"relationship_list":[{"link_list":[{"name":"accounts","records":[{"link_value":{"name":{"name":"name","value":"(X) X"}}}]}]},{"link_list":[{"name":"accounts","records":[{"link_value":{"name":{"name":"name","value":"(Y) Y"}}}]}]},{"link_list":[{"name":"accounts","records":[{"link_value":{"name":{"name":"name","value":"(C) C"}}}]}]},{"link_list":[{"name":"accounts","records":[{"link_value":{"name":{"name":"name","value":"(D) D"}}}]}]},{"link_list":[{"name":"accounts","records":[{"link_value":{"name":{"name":"name","value":"(E) E"}}}]}]}]}
到生成内容的 CSV 文件中
"ID","NAME","PHONE_WORK","PHONE_MOBILE","COMPANY"
所以在这个示例中:
"00003015000003","Christian X","","0043 699 23231","X"<br/>
....<br/>
...
我想这很复杂......但也许有人可以在这里帮助我。
解决方案
没那么难:
<?php
$json = '....';
$data = json_decode($json);
# print_r($data); #de-comment to debug
# print title
fputcsv(STDOUT,array("ID","NAME","PHONE_WORK","PHONE_MOBILE","COMPANY"));
foreach ( $data->entry_list as &$rec )
{
$val = &$rec->name_value_list;
fputcsv(STDOUT,array( $val->id->value,
$val->name->value,
$val->phone_work->value,
$val->phone_mobile->value ));
# no data available for COMPANY!
}
?>
推荐阅读
- java - SessionNotCreatedException:会话未创建来自未知错误的异常:Runtime.executionContextCreated 与 Chrome 驱动程序具有无效的“上下文”
- sql - SQL如何将罗马数字转换为数字,反之亦然
- angular - 无法使用 jsPDF 正确格式化我的 PDF
- python - 如何遍历 DataFrame 行并从 cols 中的 dicts 中获取值?
- r - 在 ggplot aes 中使用 .$ 访问器
- c++ - C++ 创建一个向量大小的数组,然后将向量复制到 C 样式数组中
- docker - Docker 插件和 Docker 与 Jenkins 管道有什么区别
- php - Laravel 多租户
- blogger - In bloggers getting error for cookies, how to resolve it?
- android - 如何让 React Native 应用看起来像其他 Android 应用?