ライブラリ: JSONシリアライズとデシリアライズ(ネイティブMQL) - ページ 7 1234567891011121314...18 新しいコメント --- 2017.11.06 15:55 #61 JAval j1; j1.Add(1); JAval j2; j2.Add(2); j2.Add(3); JAval js; js["a"].Add(j1); js["a"].Add(j2); // 排気について - { a:[ [1], [2,3] ]; } Алексей Барбашин 2017.11.06 16:15 #62 o_o: わかりそうでわからないことがある。例えば、簡単な実用的な作業として、チャートをコピーし、それぞれ3つのチャートを持つ配列の配列を、"symbol "と "period"のフィールドで作成します。つまり、結果として次のようになるはずだ:{ "keyboard":[ [ [{"symbol":USDJPY, "period":5},{"symbol":AUDUSD, "period":5},{"symbol":EURUSD, "period":5}], [{"symbol":GBPUSD, "period":5},{"symbol":NZDUSD, "period":5},{"symbol":EURJPY, "period":5}] } } ]。入れ子配列の要素数は変数で設定できます。 --- 2017.11.06 16:35 #63 JAval ja, je, js; je["symbol"]="USDJPY"; je["period"]=5; ja.Add(je); je["symbol"]="AUDUSD"; je["period"]=5; ja.Add(je); je["symbol"]="EURUSD"; je["period"]=5; ja.Add(je); js["keyboard"].Add(ja); ja.Clear(); je["symbol"]="GBPUSD"; je["period"]=5; ja.Add(je); je["symbol"]="NZDUSD"; je["period"]=5; ja.Add(je); je["symbol"]="EURJPY"; je["period"]=5; ja.Add(je); js["keyboard"].Add(ja); 本当に不明瞭なのか、それとも自分でコーディングするのが面倒なのか?) Алексей Барбашин 2017.11.06 17:23 #64 o_o:本当に不明瞭なのか、それとも自分でコードを書くのが面倒なのか?)いいえ、アレクセイ、私はコードを書くのが億劫なのではありません。あなたの例では、配列の項目 数がすべて固定されています。これが私のコードですが、残念ながらうまくいきません。何がエラーなのか理解できません。((( CJAVal j_keyboard; // メイン配列 CJAVal j_array; // 入れ子配列 CJAVal j_item; // 配列要素 //--- 送信エレメント数を決定する int count = ArraySize(array_value); if(count == 0) return(j_keyboard.Serialize()); // 要素なし int col = 0; for(int item = 0; item<count; item++) { //--- 最も単純な要素を埋める j_item["text"] = array_value[item]; if(col<columns) // 数が指定した列より小さい場合は、配列に追加する。 { j_array.Add(j_item); } else { // 指定された列数に達すると、それらをメイン配列に追加する。 j_keyboard["keyboard"].Add(j_array); col = 0; j_array.Clear(); // 入れ子になった配列をクリアする } } Print(j_keyboard.Serialize());array_value - Это строчный массив переданных элементов --- 2017.11.06 19:13 #65 Алексей Барбашин: これが私のコードだが、残念ながらうまくいかない。どうして動かないことがわかったのですか? Алексей Барбашин 2017.11.06 19:16 #66 o_o:どうしてうまくいかないと気づいたのですか?シリアライズ文字列は空のオブジェクトを出力します。スクリプトを作ってここにアップロードするつもりです。....しばらくしてアレクセイ、ごめん、失敗した。イテレータのインクリメントを追加してなかった...(((全部うまくいったよ。知的な人とおしゃべりするってこういうことなんだ!)))もう1年近く愛用しているあなたの開発に改めて感謝します! ファイル: TestArrayJson.mq4 6 kb --- 2017.11.06 19:20 #67 Алексей Барбашин: シリアライズ文字列は空のオブジェクトを出力します。スクリプトを作ってここに投稿します。私の場合はうまくいった。#include <JAson.mqh> //------------------------------------------------------------------ OnStart void OnStart() { string array_value[]={"000", "111", "012", "AAA", "BBB", "ABC"}; Print(Get(array_value, 3)); } //------------------------------------------------------------------ Get string Get(string& array_value[], int columns) { CJAVal jk; // メイン配列 int n=ArraySize(array_value); if (n==0) return jk.Serialize(); // 要素なし CJAVal ja; // 入れ子配列 for(int i=0, c=0; i<n; i++, c++) { if (c>=columns) { jk["keyboard"].Add(ja); c=0; ja.Clear(); } CJAVal ji; ji["text"]=array_value[i]; ja.Add(ji); // 追加 } if (ArraySize(ja.m_e)>0) jk["keyboard"].Add(ja); return jk.Serialize(); } {"keyboard":[[{"text":"000"},{"text":"111"},{"text":"012"}],[{"text":"AAA"},{"text":"BBB"},{"text":"ABC"}]]} あなたのコードのどこが悪いのですか? Алексей Барбашин 2017.11.06 19:42 #68 o_o:私の場合はうまくいく。あなたのコードはどうなっていますか?上で答えました。ありがとうございます!))) --- 2017.11.06 19:54 #69 Алексей Барбашин: うまくいっている。知的な人とただおしゃべりするというのは、そういうことなのだ!)))全てにデバッグがあります。)もう1年近く使っているあなたの開発に改めて感謝します!どういたしまして Ting Yu 2017.11.16 03:09 #70 WebRequest の結果は配列です。jv.Deserialize();どのように 反復 できますか? 1234567891011121314...18 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
わかりそうでわからないことがある。例えば、簡単な実用的な作業として、チャートをコピーし、それぞれ3つのチャートを持つ配列の配列を、"symbol "と "period"のフィールドで作成します。
つまり、結果として次のようになるはずだ:{ "keyboard":[ [ [{"symbol":USDJPY, "period":5},{"symbol":AUDUSD, "period":5},{"symbol":EURUSD, "period":5}], [{"symbol":GBPUSD, "period":5},{"symbol":NZDUSD, "period":5},{"symbol":EURJPY, "period":5}] } } ]。
入れ子配列の要素数は変数で設定できます。
本当に不明瞭なのか、それとも自分でコーディングするのが面倒なのか?)
本当に不明瞭なのか、それとも自分でコードを書くのが面倒なのか?)
いいえ、アレクセイ、私はコードを書くのが億劫なのではありません。あなたの例では、配列の項目 数がすべて固定されています。これが私のコードですが、残念ながらうまくいきません。何がエラーなのか理解できません。(((
これが私のコードだが、残念ながらうまくいかない。
どうして動かないことがわかったのですか?
どうしてうまくいかないと気づいたのですか?
シリアライズ文字列は空のオブジェクトを出力します。スクリプトを作ってここにアップロードするつもりです。
....しばらくして
アレクセイ、ごめん、失敗した。イテレータのインクリメントを追加してなかった...(((
全部うまくいったよ。知的な人とおしゃべりするってこういうことなんだ!)))もう1年近く愛用しているあなたの開発に改めて感謝します!
シリアライズ文字列は空のオブジェクトを出力します。スクリプトを作ってここに投稿します。
私の場合はうまくいった。
あなたのコードのどこが悪いのですか?
私の場合はうまくいく。
あなたのコードはどうなっていますか?
上で答えました。ありがとうございます!)))
Алексей Барбашин:
うまくいっている。知的な人とただおしゃべりするというのは、そういうことなのだ!)))
全てにデバッグがあります。)
もう1年近く使っているあなたの開発に改めて感謝します!
どういたしまして
WebRequest の結果は配列です。
jv.Deserialize();
どのように 反復 できますか?