When I run the code below it results in the first row in a long list of columns containing only the text Array.
I've used $decoded = json_decode($json_file, true);
to indicate that I want arrays instead of objects so I'm not sure what the issue is.
Should I be using bracket or arrow notation somewhere to specify that I want the array values?
$json_file = file_get_contents('https://fakeurl.com&contentType=json', false);
$decoded = json_decode($json_file, true);
$fp = fopen('output.csv', 'w');
foreach($decoded as $comment) {
fputcsv($fp, $comment);
}
fclose($fp);
Here is a small snippet of the JSON. It looks like this all the way through:
{
"rows": [{
"columns": [{
"name": "clientId",
"value": "1839",
"type": "xs:int",
"format": ""
}, {
"name": "campaignId",
"value": "25646",
"type": "xs:int",
"format": ""
}, {
"name": "campaignStatus",
"value": "Live",
"type": "xs:string",
"format": ""
}, {
"name": "campaignName",
"value": "Template Donation Litle",
"type": "xs:string",
"format": ""
}, {
"name": "campaignExportName",
"value": "Template Donation Litle",
"type": "xs:string",
"format": ""
}, {
"name": "description",
"value": "/donate/template/Litle",
"type": "xs:string",
"format": ""
}]
}, {
"columns": [{
"name": "clientId",
"value": "1839",
"type": "xs:int",
"format": ""
}, {
"name": "campaignId",
"value": "25812",
"type": "xs:int",
"format": ""
}, {
"name": "campaignStatus",
"value": "Live",
"type": "xs:string",
"format": ""
}, {
"name": "campaignName",
"value": "Monthly Only",
"type": "xs:string",
"format": ""
}, {
"name": "campaignExportName",
"value": "Monthly Only",
"type": "xs:string",
"format": ""
}, {
"name": "description",
"value": "A donation receipt will be emailed to the address you submitted. This donation is tax-deductible to the fullest extent of the law.",
"type": "xs:string",
"format": ""
}]
}]
}