「IO.Serialize() の JSON を参照する」の版間の差分
細編集の要約なし |
空行の除去 |
||
| (2人の利用者による、間の2版が非表示) | |||
| 3行目: | 3行目: | ||
[[includeライブラリ]] の ''IO.Serialize()'' メソッドで書き出した JSON ファイルをを、本体のマクロから参照するための関数。<br> | [[includeライブラリ]] の ''IO.Serialize()'' メソッドで書き出した JSON ファイルをを、本体のマクロから参照するための関数。<br> | ||
include/IO.js をインクルードしているマクロで使用可。 | include/IO.js をインクルードしているマクロで使用可。 | ||
''ref.'' 導入事例として「[[検索ジャンプの include版|ポップアップメニューで検索先にジャンプ]]」「[[ブックマーク一覧ジャンプ#include版|ブックマーク一覧ジャンプ]]」マクロの sukemaru 版(include 版)<br> | |||
※ 複数の設定項目(変数)をポップアップメニュー内から変更、JSON の参照・初期化などができるようになっています。 | |||
== 使い方 == | == 使い方 == | ||
IO.Serialize() での '''JSON ファイル名(ベース名)の既定値'''は | |||
IO.Serialize() での JSON | <syntaxhighlight lang="javascript"> | ||
< | |||
#include "include/IO.js" | #include "include/IO.js" | ||
| 17行目: | 19行目: | ||
// IO.Seialize( object, jsonName ); // object は任意のオブジェクト | // IO.Seialize( object, jsonName ); // object は任意のオブジェクト | ||
</ | </syntaxhighlight> | ||
※ IO.Seialize() で第二引数を省略した場合は、関数側で定義された既定値 ScriptName.replace( /\.js$/i, "" ) が JSON ファイル名になる(マクロの JS ファイルのベース名と同一になる)。<br> イベントマクロで IO.Seialize() を使用する場合は、ScriptName を使わず、任意の文字列を指定すること。 | |||
;保存先のフォルダパスは JsonDir() 関数で取得する | ;保存先のフォルダパスは JsonDir() 関数で取得する | ||
< | <syntaxhighlight lang="javascript"> | ||
var jsonDir = JsonDir(); | var jsonDir = JsonDir(); | ||
Alert( "jsonDir:\n\n" + jsonDir ); | Alert( "jsonDir:\n\n" + jsonDir ); | ||
</ | </syntaxhighlight> | ||
;JSON ファイルのフルパスは | ;JSON ファイルのフルパスは | ||
< | <syntaxhighlight lang="javascript"> | ||
var jsonPath = jsonDir + "\\" + jsonName + ".json"; | var jsonPath = jsonDir + "\\" + jsonName + ".json"; | ||
// または | // または | ||
| 35行目: | 36行目: | ||
Alert( "jsonPath:\n\n"" + jsonPath ); | Alert( "jsonPath:\n\n"" + jsonPath ); | ||
</ | </syntaxhighlight> | ||
;JSON の内容を確認ダイアログに表示してから JSON ファイルを開く | ;JSON の内容を確認ダイアログに表示してから JSON ファイルを開く | ||
< | <syntaxhighlight lang="javascript"> | ||
// 開く前に最新の状態に JSON を更新するなら関数コード内の object は任意のものに変更すること | // 開く前に最新の状態に JSON を更新するなら関数コード内の object は任意のものに変更すること | ||
OpenJson( jsonName ); // 引数は JSON のファイル名(ベース名) | OpenJson( jsonName ); // 引数は JSON のファイル名(ベース名) | ||
</ | </syntaxhighlight> | ||
[[ファイル:Mery 関数 JsonContents.png|link=]] | [[ファイル:Mery 関数 JsonContents.png|link=]] | ||
<br clear=all> | |||
※ JSON では「キー」(オブジェクトのプロパティ名)の側にも '''"'''ダブルクオート'''"''' が付く。 | |||
== 組み込み関数 JsonDir() == | == 組み込み関数 JsonDir() == | ||
< | <syntaxhighlight lang="javascript"> | ||
/** | /** | ||
* 関数 JsonDir() | * 関数 JsonDir() | ||
| 70行目: | 71行目: | ||
return jsonDir; | return jsonDir; | ||
} | } | ||
</ | </syntaxhighlight> | ||
== 組み込み関数 OpenJson() == | == 組み込み関数 OpenJson() == | ||
OpenJson() を使用するには JsonDir() と JsonContents() も必要。<br> | OpenJson() を使用するには JsonDir() と JsonContents() も必要。<br> | ||
JSON.stringify() だと Windows XP では使えないので、整形は簡易的な置換処理(ダイアログ窓のコンソールフォントでの読みやすさを優先して{}を全角にする。入れ子になった要素の字下げ数を考慮しない)。 | JSON.stringify() だと Windows XP では使えないので、整形は簡易的な置換処理(ダイアログ窓のコンソールフォントでの読みやすさを優先して{}を全角にする。入れ子になった要素の字下げ数を考慮しない)。 | ||
< | <syntaxhighlight lang="javascript"> | ||
/** | /** | ||
* 関数 OpenJson( jsonName ) | * 関数 OpenJson( jsonName ) | ||
| 145行目: | 144行目: | ||
} | } | ||
} | } | ||
</ | </syntaxhighlight> | ||
スポンサーリンク