無料でロボットをダウンロードする方法を見る
Telegram上で私たちを見つけてください。
私たちのファンページに参加してください
興味深いスクリプト?
それではリンクにそれを投稿してください。-
他の人にそれを評価してもらいます
記事を気に入りましたか?MetaTrader 5ターミナルの中でそれを試してみてください。
ライブラリ

JSON Parser - MetaTrader 4のためのライブラリ

ビュー:
39974
評価:
(40)
パブリッシュ済み:
2014.02.24 06:27
アップデート済み:
2016.11.22 07:32
\MQL4\Include\
json.mqh (23.93 KB) ビュー
このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動

Author:

Andrew Lord

This parses mql4 strings that contain JSON code. It creates a JSONValue that can be used to retrieve the fields within the JSON structure. It also provides a JSONIterator class to loop over object keys.

It parses the JSON using a simple a recursive descent parser. It requires the Hash class.

I still have to implement the parsing of unicode escaped characters.

The Codebase version might not be the most recent. The latest version can be found here.

Documentation:

JSONParser class

JSONValue class


Example:

#include "hash.mqh"
#include "json.mqh"
    
string s = "{ \"firstName\": \"John\", \"lastName\": \"Smith\", \"age\": 25, "+
"\"address\": { \"streetAddress\": \"21 2nd Street\", \"city\": \"New York\", \"state\": \"NY\", \"postalCode\": \"10021\" },"+
" \"phoneNumber\": [ { \"type\": \"home\", \"number\": \"212 555-1234\" }, { \"type\": \"fax\", \"number\": \"646 555-4567\" } ],"+
" \"gender\":{ \"type\":\"male\" }  }";

    JSONParser *parser = new JSONParser();

    JSONValue *jv = parser.parse(s);

    if (jv == NULL) {
        Print("error:"+(string)parser.getErrorCode()+parser.getErrorMessage());
    } else {


        Print("PARSED:"+jv.toString());
        
        if (jv.isObject()) { // check root value is an object. (it can be an array)

            JSONObject *jo = jv;

            // Direct access - will throw null pointer if wrong getter used.
            Print("firstName:" + jo.getString("firstName"));
            Print("city:" + jo.getObject("address").getString("city"));
            Print("phone:" + jo.getArray("phoneNumber").getObject(0).getString("number"));

            // Safe access in case JSON data is missing or different.
            if (jo.getString("firstName",s) ) Print("firstName = "+s);

            // Loop over object keys
            JSONIterator *it = new JSONIterator(jo);
            for( ; it.hasNext() ; it.next()) {
                Print("loop:"+it.key()+" = "+it.val().toString());
            }
            delete it;
        }
        delete jv;
    }
    delete parser;
The latest version can also be found here.
SwingCyborg SwingCyborg

This Expert Advisor is based on your human ability to predict medium and long term trends.

MACD vs Signal line MACD vs Signal line

It opens and close transactions depends on MACD vs signal line - upper - opens buy, closes sell, below - closes buy, opens sell.

Universal EA Universal EA

This is my first Expert Advisor so please give feedback on how I can improve it to make the best possible EA. Thanks for the inputs in advance and happy trading.

Condition Scanner Condition Scanner

Scan for conditions in which you have an interest. Show where the condition arose historically on the current Symbol and timeframe. On a separate panel, show where the condition has currently arisen for any of your chosen symbols and timeframes.