Roku Direct Publisher

The easiest way to create a great TV experience.
cancel
Showing results for 
Search instead for 
Did you mean: 
Zelkowo
Level 8

JSON Header in static text file

I'm using PHP to create my feed.  If my feed is reading straight from the PHP script (i.e. http://.....feed.php), I just include this in my PHP script
header("Content-type: application/json"); 
and echo my array using json_encode().

However, for several reasons, I don't want to use the PHP script as the feed.  I want PHP to create a static JSON file, and then use that file as the feed. I am able to write the file, it looks like a well formed JSON object, but I get this error below.  

If anyone knows of a good trick please let me know.

The server returned an unsupported content type. Was expecting 'application/rss+xml', 'text/xml', 'application/xml' or 'application/json' but received 'text/plain'.
0 Kudos
4 Replies

Re: JSON Header in static text file

If your hosting service provides you cpanel access go into apache mime types and add the mime type: application/json with the extension: json

If you don't have cpanel access you can add the following to your .htaccess file:

AddType application/json json
0 Kudos
Zelkowo
Level 8

Re: JSON Header in static text file

Ok, sounds "easy" enough.  Do I need to name the file with a certain extension (i.e. .json) in order for it to get the header?
0 Kudos

Re: JSON Header in static text file

It will need a .json extension
0 Kudos
Zelkowo
Level 8

Re: JSON Header in static text file

Well as it turns out, it was already a mime type, I just needed to name my static files as .json!  Im guessing .json is pretty standard.  

My main reason for doing this, is so that multiple channel viewers will not put a strain on the database.  Also if the database every goes down, the static file is set.

For anyone using PHP, it's a piece of cake

$json_data = json_encode($JSON2);

All I did was replace
echo json_encode($JSON2);
with
file_put_contents('.../output.json, $json_data);

note:  the 'user' on your server that your webserver / php shows up as will need permission to write to the directory on which you place this.
0 Kudos