Вы действительно можете использовать библиотеку JAson
для этого типа поведения. linky
Пример:
#include <jason.mqh>
void OnStart()
{
CJAVal s;
s[0]["NAME"] = "B";
s[0]["WERT"] = 10;
s[0]["VALUE"]= 50.00;
s[0]["TIME"] = (int)TimeCurrent();
s[0]["INT"]=5;
s[0]["TYPE"]="Man";
s[1]["NAME"] = "A";
s[1]["WERT"] = 10000;
s[1]["VALUE"]= 40000.00;
s[1]["TIME"] = (int)TimeCurrent();
s[1]["INT"]=100;
s[1]["TYPE"]="female";
Print(s.Serialize());
for(int i=0; i<s.Size(); i++) {
for(int j=0; j<s[i].Size(); j++) {
string key = s[i].m_e[j].m_key;
printf("%s = string(%s), int(%d), double(%.3f)",
key,
s[i][key].ToStr(),
s[i][key].ToInt(),
s[i][key].ToDbl()
);
}
}
}
Хотя вам гораздо лучше создать метод to_string
на structs
и classes
struct Struct {
string name;
int wert;
double value;
string str() {
return StringFormat("Struct(%s, %d, %.2f)", name, wert, value);
}
};