Differences

This shows you the differences between two versions of the page.

Link to this comparison view

gdevelop:tutorials:jsonfile [2015/05/18 12:28]
gdevelop:tutorials:jsonfile [2015/05/18 12:28] (current)
Line 1: Line 1:
 +====== Load a JSON file to a variable ======
  
 +
 +You can load the content of a local JSON file into a variable.
 +
 +<​note>​
 +For native games, you can only load a JSON file **from a website**. See the note at the end of this page.
 +</​note>​
 +
 +First, you need a json file that you'll put next to the //​index.html//​ file when your game is exported. For example:
 +
 +<​file>​
 +{
 +    "​title":​ "My great news",
 +    "​content":​ "Hello everybody"​
 +}
 +</​file>​
 +
 +In your game, add an action called "Send a HTTP request to a website"​.\\
 +  * For the host, enter an empty string: ""​ (as we're using a local file put in the game folder). Do not forget the quotes!
 +  * For the path, enter the name of the JSON file: "​news.json"​ (Do not forget the quotes again!)
 +  * For the body of the request, enter ""​ again.
 +  * For the last parameter, enter the name of the variable that will be filled with the JSON file. For example, ''​RawNews''​.
 +
 +Add a Text object, and set the text of this object to the value of the ''​RawNews''​ variable. Put the object on the scene.
 +Export your game, put the ''​news.json''​ file next to the ''​index.html'',​ **send the game to a website** and open it with a browser. You'll see the variable filled with the JSON.
 +
 +<note warning>
 +This **won'​t work** if you're not sending your game to a website.
 +</​note>​
 +
 +Ok, great, we can now display the content of the JSON file! How to read the value of the title and content.
 +
 +Add an action after the first one. Choose action ''​Convert JSON to variable''​. ​
 +  * For the first parameter ("JSON string"​),​ the action expect the content of the json, so enter ''​VariableString(RawNews)''​. (As the ''​RawNews''​ variable contains the JSON)
 +  * Then enter the name of the variable that will contain the value of the JSON. For example, ''​News''​.
 +
 +That's all! Now you can access to the title like this ''​VariableString(News.title)''​ (and the content in the same way: ''​VariableString(News.content)''​).
 +
 +For example, you can add a text object and this action:
 +<​code>​
 +Do =VariableString(News.content) to the text of object MyTextObject
 +</​code>​
 +
 +Again, export the game, put it on a website, put the json file next to the ''​index.html''​.\\
 +The object called ''​MyTextObject''​ will now display //Hello everybody//​! You can update the json file and relaunch the game, and the text will be updated! This is great to make a news system.
 +
 +<​note>​
 +Here we are loading a local JSON file. It works only for HTML5 games.\\
 +For native games, you have to enter the website name in the "​host"​ parameter. For example, if your JSON file is hosted at http://​www.example.com/​test/​news.json,​ enter ''"​http://​www.example.com"''​ for the name of the host, and ''"​test/​news.json"''​ for the name of the page. It will works for native games **and** HTML5 games (For HTML5 games, just be sure to host your game on the same domain, www.example.com here).
 +</​note>​