Bibliotecas: JSON Serialization and Deserialization (native MQL) - página 3

 

Bueno, resulta que es sólo una matriz de objetos.

el aspecto general de "Array": [ {..}, {..}, ]

Es decir, envuelve esta lista en llaves rizadas.

"List": [ {"symbol": "USDJPY", "type": "Buy" },  { "symbol": "EURUSD", "type": "Sell" } ]
 

Lo he limitado con corchetes. Pero sólo se lee el primer objeto:

[ {
     "symbol": "USDJPY",
     "type": "Buy",
     "lot": 0.5,
     "price_open": 102.36,
     "price_close": 102.44,
     "stop_loss": 99.25,
     "take_profit": 103.25 
    },
    {

¿Cómo leer en un array?

 

¿Le das json válido al parser?

Todo funciona con tus datos

  string in="{ \"array\": [ { \"symbol\": \"USDJPY\", \"type\": \"Buy\", \"lot\": 0.5, \"price_open\": 102.36, \"price_close\": 102.44, \"stop_loss\": 99.25, \"take_profit\": 103.25 }, { \"symbol\": \"EURUSD\", \"type\": \"Sell\", \"lot\": 0.2, \"price_open\": 1.1044, \"price_close\": 1.1252, \"stop_loss\": 1.1434, \"take_profit\": 1.0922 } ] }";
  CJAVal js(NULL,jtUNDEF);
  js.Deserialize(in);
  string out="";
  js.Serialize(out);
  Print(out);
 
Alexei, ¡muchas gracias! Olvidé ponerlo entre corchetes.....
 

Pregunta de un "tonto".

¿Cómo puedo obtener el valor de una clave sin recurrir al método de búsqueda de claves?

virtual CJAVal *CJAVal::FindKey(string akey) 
 
Dennis Kirichenko:

Pregunta de un "tonto".

¿Cómo puedo obtener el valor de una clave sin recurrir al método findkey?

Sólo conociendo la ruta completa a la clave, pero findkey se usará implícitamente.

double d=jo["order"]["profit"];

double d=ja["array"].m_e[0]["profit"];

---

si no, acceder directamente al array m_e, conociendo el índice exacto.

 

Hola. ¿Dónde puedo leer sobre todas las funciones de su biblioteca? El otro día tuve que resolver el problema de interactuar con uno de los recursos de Internet, cuya respuesta se devuelve en formato JSON. Su biblioteca me ayudó a ahorrar tiempo y a no tener que ocuparme del análisis sintáctico de JSON, ¡por lo que le estoy muy agradecido! Pero me gustaría entender las funciones de la biblioteca más profundamente. No he encontrado ninguna descripción de la función de la biblioteca.

Y una pregunta más: en la respuesta del servicio en uno de los campos es una pequeña descripción en cirílico, pero JSON servicio codifica este texto de la siguiente manera: "descripción": "\u041d\u043e\u0432\u043e\u0435\u0432\u0432\u0435\u0440\u0441\u0438\u0438 v.2\r\n1.\u0418\u0437\u043c\u0435\u043d\u0435\u043d \u0434\u0438\u0437\u0430\u0439\u043d \u0442\u043e\u0440\u0433\u043e\u0432\u043e\u0439 \u043f\u0430\u043d\u0435\u043b\u0438\r\n2.\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043c\u0438\u043d\u0438\u043f\u0430\u043d\u0435\u043b\u044c\r\n3.\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0442\u043e\u0440\u0433\u043e\u0432\u043e\u0433\u043e \u0441\u0447\u0435\u0442\u0430\r\n4.\u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u044b \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438\r\n\r\n"

¿Es posible traducir este texto al formato requerido con la ayuda de su biblioteca?

Gracias de antemano.

 

libe sólo tiene dos funciones principales

Serialización y Deserialización.

Todo lo demás son operadores sobrecargados, configuración y lectura de arrays

---

este texto escapado puede ser convertido.

Voy a añadir el análisis a la función Unescape en la próxima versión.

 

actualizado a 1.05

el texto de su ejemplo se convertirá en

{"description": "Nuevo en la versión v.2.Panel de operaciones rediseñado.Panel mini añadido.Visualización del saldo de la cuenta de operaciones seleccionada.Corregidos algunos errores"}.

---

Mientras los administradores actualizan el código base, puede descargar el adjunto.

Archivos adjuntos:
jason.mqh  30 kb
 
o_O:

actualizado a 1.05

el texto de su ejemplo se convertirá en

{"description": "Nuevo en la versión v.2.Panel de operaciones rediseñado.Panel mini añadido.Visualización del saldo de la cuenta de operaciones seleccionada.Corregidos algunos errores"}.

---

Mientras los administradores actualizan el código base, puede descargar el adjunto.

Muchas gracias. Así que ahora puedo quitar el decodificador que ya he escrito de Owl. ¡Que todo esté en una sola biblioteca! ¡Respuesta muy rápida! ¡Muchas gracias!