Json使用PHP(curl)将数据从API保存到Json文件

Json使用PHP(curl)将数据从API保存到Json文件,php,json,curl,Php,Json,Curl,我编写这段代码是为了从API URL获取数据。 所有数据都写入我的文件,但我找不到解决方案使其看起来像文件中的Json格式,我缺少什么?我在文件中尝试的所有内容都像下面添加的文本一样显示了示例和我想要的内容。也许有人会帮我做这件事。谢谢 使用php curl获取和保存数据的源代码 <?php $token = "eyJ"; $ch = curl_init("https://api.xxx.com/api/Catelo/Prod?cat=MPHEFGZ"); $fp = fopen("pro

我编写这段代码是为了从API URL获取数据。 所有数据都写入我的文件,但我找不到解决方案使其看起来像文件中的Json格式,我缺少什么?我在文件中尝试的所有内容都像下面添加的文本一样显示了示例和我想要的内容。也许有人会帮我做这件事。谢谢

使用php curl获取和保存数据的源代码

<?php
$token = "eyJ";
$ch = curl_init("https://api.xxx.com/api/Catelo/Prod?cat=MPHEFGZ");
$fp = fopen("prod.json", "w");

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
   'Content-Type: application/json',
   'Authorization: Bearer ' . $token
   ));
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);

curl_exec($ch);
curl_close($ch);
fclose($fp);
?>
当数据保存到文件时,我现在得到的是:

[{"id":1,"Code":1,"name":"TV","manu":"32","v":"P","v":"P","c":"T","q":"0","p":1.0,"d":1.0,"imagePath":"e0bc7.Jpeg","thumbnailImagePath":"0bc7.Jpeg","fullDsc":"32\"","cury":"E","httpD":"548","packy":1,"ty":"24","eae":"","obligaKit":0,"reerty":0,"proate":0,"pront":70,"quane2":"0","pri":0.0,"lotN":"","p":0.0,"i":70}

由于您没有处理来自API的响应,因此您看到的只是响应的发送方式。要格式化它,您可以使用CURLOPT_RETURNTRANSFER捕获输出,然后解码响应——使用JSON_PRETTY_PRINT对其重新编码


由于您没有处理来自API的响应,因此您看到的只是响应的发送方式。要格式化它,您可以使用CURLOPT_RETURNTRANSFER捕获输出,然后解码响应——使用JSON_PRETTY_PRINT对其重新编码


@是的,我想要的是将数据保存为json格式,而不是原始格式。只是我不知道如何使它变得漂亮。@NigelRen的可能副本是的,我想要的是将数据保存为json格式,而不是原始格式。只是我不知道如何使它变得漂亮..可能重复我如何添加这个echo json_encodejson_decode$response,json_pretty_PRINT;在我的代码中,代码到文件必须放在哪里才能在json文件中保存为漂亮的json数据?您是否在fclose$fp之后的示例代码中尝试过它;是的,我试过了,但没有改变尝试替换行,但仍然无效..:如果回显$response;,会得到什么结果;。检查格式是否正确。JSON_PRETT_PRINT-这救了我!谢谢如何添加echo json_encodejson_decode$response,json_PRETTY_PRINT;在我的代码中,代码到文件必须放在哪里才能在json文件中保存为漂亮的json数据?您是否在fclose$fp之后的示例代码中尝试过它;是的,我试过了,但没有改变尝试替换行,但仍然无效..:如果回显$response;,会得到什么结果;。检查格式是否正确。JSON_PRETT_PRINT-这救了我!谢谢
[{"id":1,"Code":1,"name":"TV","manu":"32","v":"P","v":"P","c":"T","q":"0","p":1.0,"d":1.0,"imagePath":"e0bc7.Jpeg","thumbnailImagePath":"0bc7.Jpeg","fullDsc":"32\"","cury":"E","httpD":"548","packy":1,"ty":"24","eae":"","obligaKit":0,"reerty":0,"proate":0,"pront":70,"quane2":"0","pri":0.0,"lotN":"","p":0.0,"i":70}
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Authorization: Bearer ' . $token
));
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// Store the JSON from the API
$response = curl_exec($ch);
curl_close($ch);
fclose($fp);

// Decode it, re-encode with formatting
echo json_encode(json_decode($response), JSON_PRETTY_PRINT);