Bibliotheken: JSON Serialization and Deserialization (native MQL) - Seite 15
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Artem Maltsev, ich empfehle Ihnen, meine Version hinzuzufügen, weil diejenigen, die das Modul heruntergeladen haben, nicht in der Lage sein werden, dies zu tun: #107.
Können Sie mir sagen, wie ich das Doppelte aufrunden kann?
Es gibt eine Option unten, aber sie fügt eckige Klammern hinzu.
Wie geht das?
{ "id": 54, "nome": "12.01 alterado", "condicoes": [ { "id": 47, "estrategiaId": 54, "indicadorAId": 87, "indicadorA": { "id": 87, "nome": "iATR", "parametros": [ { "id": 46, "nome": null, "valor": 10.0 } ] }, "retornoA": 0, "comparador": ">", "indicadorBId": 88, "indicadorB": { "id": 88, "nome": "iAMA", "parametros": [ { "id": 47, "nome": "Aplicar a", "valor": 1.0 }, { "id": 48, "nome": "Periodo rapido", "valor": 2.0 }, { "id": 49, "nome": "Periodo lento", "valor": 3.0 }, { "id": 50, "nome": "Deslocalmento", "valor": 4.0 }, { "id": 51, "nome": "Aplicar a", "valor": 0.0 } ] }, "retornoB": 0 }, { "id": 48, "estrategiaId": 54, "indicadorAId": 90, "indicadorA": { "id": 90, "nome": "iATR", "parametros": [ { "id": 52, "nome": null, "valor": 10.0 } ] }, "retornoA": 0, "comparador": ">", "indicadorBId": 89, "indicadorB": { "id": 89, "nome": "iAMA", "parametros": [ { "id": 53, "nome": "Aplicar a", "valor": 1.0 }, { "id": 54, "nome": "Periodo rapido", "valor": 2.0 }, { "id": 55, "nome": "Periodo lento", "valor": 3.0 }, { "id": 56, "nome": "Deslocalmento", "valor": 4.0 }, { "id": 57, "nome": "Aplicar a", "valor": 0.0 } ] }, "retornoB": 0 } ] }Auf meinem Computer funktioniert es einwandfrei. Wie setzen Sie die json-Zeichenfolge in die pJS-Variable?
@Artem Maltsev Vielen Dank, dass Sie diese JSON-Bibliothek erstellt haben. Basiert sie auf einer C++-Bibliothek?
Haben Sie einige Leistungsbenchmarks dazu? Verwendet sie intern 1-Byte- oder 2-Byte-Zeichen zum Speichern der Daten?
Wenn ein Wert null ist, setzt Deserialize() den Typ auf jtNULL, weist aber m_sv nicht NULL zu, so dass die Methode ToStr() bei einem Vergleich mit NULL false zurückgibt:
Die Ausgabe ist:
2022.03.28 17:50:02.833 test-jsonNULLComparison (GBPUSD,M30) Alert: b ist ein leerer String
Die Abhilfe wäre, den Typ des Wertes mit jtNULL zu vergleichen oder den Quellcode in Zeile 220 durch Hinzufügen von "m_sv=NULL;" zu ändern:
Guten Tag!
Coole Bibliothek hilft sehr, vielen Dank.
Ich bin gerade auf dieses Problem gestoßen - wie extrahiere ich eine Teilzeichenkette aus einem String:
Es gibt eine Zeichenkette
{"Typ": "Einstellungen", "Daten":{"auto_trade":true, "stop_trade":true}}}
Ich muss die Teilzeichenkette "data" herausziehen.
Das funktioniert so nicht:
CJAVal js;
js.Deserialise(stroka);
js["data"].ToStr();
Guten Tag!
Coole Bibliothek ist sehr hilfreich, vielen Dank.
Ich stieß gerade auf dieses Problem - wie man einen Teilstring aus einer Zeichenfolge zu extrahieren:
Es gibt eine Zeichenkette
{"Typ": "Einstellungen", "Daten":{"auto_trade":true, "stop_trade":true}}
Ich muss die Teilzeichenkette "data" herausziehen.
Das funktioniert so nicht:
CJAVal js;
js.Deserialize(stroka);
js["data"].ToStr();
Ich habe bisher nur eine Möglichkeit gefunden, die erforderliche Teilzeichenkette herauszuziehen:
js.Deserialize(stroka);
string data2=js["data"].Serialize();
js2.Deserialize(data2);
D.h. die gewünschte Teilzeichenkette sollte separat serialisiert und deserialisiert werden.
Können Sie mir sagen, wie ich das Doppelte aufrunden kann?
Es gibt eine Variante unten, aber sie fügt eckige Klammern hinzu.
Wie geht das?
Versuchen Sie es auf diese Weise:
Leider wieder mal was nicht funktioniert.
Wie soll man an nicht funktionierenden Codes lernen?
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
absolut nix.
Woran liegt das jetzt?