Watch how to download trading robots for free
Find us on Twitter!
Join our fan page
Interesting script?
So post a link to it -
let others appraise it
You liked the script? Try it in the MetaTrader 5 terminal
Libraries

JSON Serialization and Deserialization (native MQL) - library for MetaTrader 5

Views:
31397
Rating:
(86)
Published:
2015.10.12 14:47
Updated:
2018.01.08 15:27
\MQL5\Scripts\
jason_test.mq5 (5.85 KB) view
\MQL5\Include\
JAson.mqh (30.59 KB) view
Need a robot or indicator based on this code? Order it on Freelance Go to Freelance

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.

Translated from Russian by MetaQuotes Ltd.
Original code: https://www.mql5.com/ru/code/13663

ForecastOscilator_HTF ForecastOscilator_HTF

The ForecastOscilator indicator with the timeframe selection option available in the input parameters.

Flat_HTF Flat_HTF

The Flat indicator with the timeframe selection option available in the input parameters.

FX5_SelfAdjustingRSI_HTF FX5_SelfAdjustingRSI_HTF

The FX5_SelfAdjustingRSI indicator with the timeframe selection option available in the input parameters.

FX5_SelfAdjustingCCI FX5_SelfAdjustingCCI

The CCI oscillator with the boundaries of the overbought/oversold areas in the form of Bollinger Bands.