Bibliotheken: JSON Serialization and Deserialization (native MQL)

 

JSON Serialization and Deserialization (native MQL):

Serialization und Deserialization des JSON Protokolls. Der portable code mit der superschnellen Bibliothek С++.

Autor: o_O

 

Super Bibliothek.

 

Braucht allerdings für die aktuelle Version vom MT5 ein paar "kosmetische" Anpassungen, da sonst Fehler geworfen werden. 

 
marquez:

Braucht allerdings für die aktuelle Version vom MT5 ein paar "kosmetische" Anpassungen, da sonst Fehler geworfen werden. 

Was für?

Version 1.07 kompiliert ohne Fehler.

 
o_O:

Was für?

Version 1.07 kompiliert ohne Fehler.

 

Tatsache.

Bevor ich meinen Kommentar gepostet hab, hab ich extra nochmal bei "ansehen" den source angeschaut und bei mir eingebunden. Da scheint wohl was altes gewesen sein. Da hat sich dann wohl was überschnitten, oder hier wurde alter Code gecached ausgegeben.

Wann hast Du denn upgedated ? Wäre vielleicht auch immer interessant zu wissen.


 
marquez:
Wann hast Du denn upgedated ?

ich habe in der ru-sektion (die ich besser als Deutsch kenne) alles hinzugefügt
aber der Moderator übersetzt diese Beschreibung nicht

https://www.mql5.com/ru/code/13663

 

v 1.11

- Der Wert von Parameter m_prec wird korrigiert (=8) angesichts der Beschreibung DoubleToString.

Wenn sich der Wert m_prec im Bereich von 0 bis 16 befindet,bekommt man die Zeilendarstellung der Zahl mit der angegebenen Zahl der Dezimalzeichen.
Wenn sich der Wert
m_prec im Bereich von -1 bis -16 befindet, bekommt man Zeilendarstellung der Zahl im wissenschaftlichen Format mit der angegebenen Anzahl der Dezimalzeichen nach dem Komma.
In allen anderen Faellen wird der Zeilenwert der Zahl 8 Dezimalzeichen nach dem Komma enthalten.


Dateien:
JAson.mqh  31 kb
 

Leider wieder mal was nicht funktioniert.

Wie soll man an nicht funktionierenden Codes lernen?

#include <JAson.mqh>
 CJAVal jv;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnStart()
  {
 
   string user = "Test User";
   string account="testuser mail";
   string EA="010000";
   bool reply=false;

   jv["user"]=user;
   jv["account"]=account;
   jv["itemnumber"]=EA;

   char data[];
   ArrayResize(data, StringToCharArray(jv.Serialize(), data, 0, WHOLE_ARRAY)-1);

//--- Die Sendung der Daten
   char res_data[];
   string res_headers=NULL;
   int r=WebRequest("POST", "meine adresse", "Content-Type: text/plain\r\n", 5000, data, res_data, res_headers);
//ArrayPrint(data);

//--- Angenommen nehmen wir aus der Antwort {"reply":"true"}
//--- den AccessToken
   jv.Deserialize(res_data);
   string replyasstrinng=jv["isValid"].ToStr();
   Print("reply as string: ",replyasstrinng);
}

Ich habe es nun mit GET und POST probiert.

"meine adresse"

ist natürlich die URL zu einer Seite auf der die antwort als

{"isValid":true}

Oder

{"isValid":false}

als antwort gibt.

Allerdings kommt wenn ich

  Print("reply as string: ",replyasstrinng);

absolut nix.

Woran liegt das jetzt?
 

Du kennst schon das Beispiel der Referenz zu WebRequest() - und wie dort aus den geladenen Daten etwas lesbares gemacht wird?

Erst danach kann man die Analyse des Jason-Textes durchführen.

Dokumentation zu MQL5: Netzwerkfunktionen / WebRequest
Dokumentation zu MQL5: Netzwerkfunktionen / WebRequest
  • www.mql5.com
WebRequest - Netzwerkfunktionen - Nachschlagewerk MQL5 - Nachschlagewerk über die Sprache des algothitmischen/automatischen Handels für MetaTrader 5
 
Carl Schreiber #:

Du kennst schon das Beispiel der Referenz zu WebRequest() - und wie dort aus den geladenen Daten etwas lesbares gemacht wird?

Erst danach kann man die Analyse des Jason-Textes durchführen.

okay ich hab es jetzt leicht geändert. das hat mir schon viel weitergeholfen.

Die meldung via Print lautet:

2022.12.21 20:20:48.718    jason_test (GER40,H1)    Die Datei wurde erfolgreich heruntergeladen, Größe 17 Byte.

Was für ich bedeutet, es kommt eine Antwort vom Server die ich nur noch irgend wie analysieren muss. Und es wurde eine Datei namens url erstellt die tatsächlich die gesuchte Antwort beinhaltet.

Danke dir Carl für deine Hilfe