Expert Advisors • Indicators • Scripts • Libraries

MQL.RobotFX.org is the biggest collection of MetaTrader expert advisors (MT5 & MT4), indicators, scripts and libraries that can be used to improve trading results, minimize risks or simply automate trading tasks

MetaTrader 5 Libraries | JSON Serialization and Deserialization (native MQL)

MetaTrader Experts, Indicators, Scripts and Libraries

Serialization and deserialization of JSON protocol. The code is ported from a high-speed С++ library.

string in, out;
CJAVal js(NULL, jtUNDEF); bool b;

//---
Print("JASon Example Deserialization:");

in="{\"a\":[1,2]}"; out=""; // example of input data
b=js.Deserialize(in); // deserialized
js.Serialize(out); // serialized again
Print(in+" -> "+out); // output for comparison

//---
Print("JASon Example Serialization:");

js["Test"]=1.4; // input data example
out=""; js.Serialize(out); // serialized
Print(out); // output

Practical example: authorization on a website and parsing the response

CJAVal jv;
jv["login"]="Login"; // login
jv["password"]="Pass"; // password

//--- serialize to string  {"login":"Login","password":"Pass"}
char data[]; 
ArrayResize(data, StringToCharArray(jv.Serialize(), data, 0, WHOLE_ARRAY)-1);

//--- send data
char res_data[];
string res_headers=NULL;
int r=WebRequest("POST", "http://my.site.com/Authorize", "Content-Type: text/plain\r\n", 5000, data, res_data, res_headers);

//--- assume the answer {"accessToken":"ABRAKADABRA","session_id":124521}
//--- get AccessToken
jv.Deserialize(res_data);
string AccessToken=jv["accessToken"].ToStr();

You can show your gratitude by sending examples of implementing MQL for working with web resources. Share you experience with JSON in MQL.

13663

Best MetaTrader Indicators + Profitable Expert Advisors