|
||||||||||||||
JSON形式データ等の配列・オブジェクトリテラルのデータをツリー化表示して構造を見やすくするスクリプトのツリー表示版。 Explorer風にしてリテラルデータの編集(Edit)をする事ができるようにしてあります。
別ページの『配列視覚化』テーブルのスクリプトと同様に、
スクリプトの流れの中での配列(多重配列・連想配列・オブジェクト)の状態を
スクリプト中から呼び出す事でJSON形式データの作成、表示・編集する事も可能です。
スクリプトからの呼び出し
■ File DownLoad => json_explorer.zip
使用サンプル => スクリプトコード中から呼び出した場合 使用サンプル => リテラルデータを貼り付けて視覚化確認する方法 Windows、Shift_JIS記述のHTMLファイルが入っています。
■使い方1 [ JavaScriptコード内からの起動と視覚化確認 ]
Step1
Step2
■使い方3 [ フォームからの入力 JSONデータなどのリテラル ]
Step1
Step2
JSON_Explorer右画面のバリューがJSON形式で表示される部分が編集可能領域です。
バリューがオブジェクトや配列であればJSON形式になりますし、単一の値であれば値が表示されます。
IndentMode(チェックボックス) はJSON形式が視覚的に見辛いので多重配列の深さにあわせてインデントを加えてあります。
同階層のデータを同じ位置に表示するようにして、データを見やすくなります。
コピーする際は IndentModeを外して左ツリー画面で目的のオブジェクトクリックして再表示させてください。
バリューがオブジェクトであれば keysort、valuesort、reverse ボタンがアクティブになります。
バリューが配列の場合は valuesort、reverse ボタンがアクティブになります。
編集画面に出ているデータを、キーソート、バリューソート、リバース可能です。
変更が必要な箇所を変更、リバースやソートなどが済んだら『ChangeData』ボタンを押すと、左に表示中のツリーのデータが書き換わります。
全ての変更が終わったらツリーのTOPオブジェクトの部分をクリック、または欲しい場所のデータを表示させてCOPYボタンを押すと、
編集画面に表示されている物が反転します。 ■JavaScriptのルールに則って編集
データを書き換える時は必ずJavaScriptソース内に書き込むのと同じ書き方を必ずしてください。
文字列であれば『ダブルクォーテーションで囲む必要があります』 { jump:function(){},on_click:function(){} }の様なものも普通に表示・編集できます。
特定の下層オブジェクトのキーを変更したり、追加したり、キーごとデータを削除・追加する場合は
一つ上の階層のリテラルデータを編集すれば可能です。
IndentModeで見れば見やすくなります。 ■JSON形式の信頼性について JSON形式に100%沿っているかどうかまでわかりかねますが、 eval()での評価などがプログラム中にあるのでJavaScript内で扱えるリテラルデータとしてはほぼ大丈夫だと思います。 (バグの存在の可能性は十分あります) FireFoxのtoSource()より少し丁寧なリテラル記述になっています。 確認済みブラウザとして IE6、IE7、FireFox2、Netscape7では全て同じように動きます。 普通配列は[ ]でくくられインデックスは表示されず、連想配列やオブジェクトは オブジェクトとして { } でくくられて キー:バリューの決まった形式になります。ソートやリバースも正しく行われるはずです。 ただOperaに関しては条件によって問題が出ます。
Opera ■その他 推奨ブラウザは FireFoxです。 私はメインがIEなのでIE基準で作っていますが、FireFoxが推奨です。 フォーム入力式で使う場合ははどれもブラウザの速度差による違いしかありませんが、 スクリプトからの呼び出し(別ウィンドウからの呼び出し)の使い方をする場合はIEだと重いです。 ローカルファイルとして使う場合は特に重く、ローカルサーバーも含めサーバー上で使う場合はそれほど重くなりません。 コーディングに問題があると思いますので軽くする為に勉強中です… IEの場合ツリーが表示されたら一度TOPオブジェクトをクリックしてから『ChangeData』を押すと、 スクリプトの構造上、元ウィンドウを参照しなくなるので軽くなります。 起動時にこのアクションをつけると、データ量が多い場合起動がかなり遅くなるので手動でお願いします。 また、ローカルHTMLファイルとして使用すると、何度もChangeDataを繰り返す度に重くなっていきます。 ローカルで使う場合はサーバーを介した方が使いやすいです。 FireFoxがデータの正確性、速さは最も安定しています。最速はSafariです。 多少他のブラウザ達と動きが違う問題点もあるブラウザですが、その変は一応調整してあります。 Operaは前述の問題点があるのでデータの正確性からいくと推奨できません。
これは単に連想配列や多重配列を視覚的に確認、編集する為の物で、JavaScriptのライブラリではありません。 処理の計画を立てたり、処理の結果の確認、データの編集などに利用する為の補助ツール、編集ツールです。 IE6、IE7、Netscape7、FireFox2、Opera9、Safari3で確認しています。 IEとNetscape、FireFox、Safariはまったく同じように動くようにスクリプトをちょっと遠まわしにしながら調整できています。 またSafariもほとんどこれらとゞ動きをするように、これも調整されてコーディングしてあります。 Operaについてはブラウザの仕様の問題で、前述の問題点などがあるだけでそれ以外は逆にSafariよりもIEやFireFoxと同じ動作をします。 正確性を求めるならIEかFireFoxを使ってください。 このスクリプトはFireFoxが最も正確に動く可能性が高いです。 OSはWindowsXPのみで確認しています。 JavaScriptスクリプトやPHPスクリプトから呼び出した場合はPOPアップウィンドウでJSON_Explorerが起動しますが、 この時に元のウィンドウを閉じない(リロードさせない)でください。 IEの場合は元の変数への参照が不可能になりエラーが出て動作できなくなります。 また他のブラウザでも、元のウィンドウが消えるとJSON_Explorerのリロードでデータが取れなくなります。 元のウィンドウは残したまま利用してください。 元のウィンドウをリロードする場合はリロードが再ポップアップ(ウィンドウは同じで良い)させてください。 JavaScriptの windowオブジェクトなどのJavaScriptが持つオブジェクトは渡さないでください。 例えば windowの場合はtopと言うプロパティが存在すれば、windowその物を指し示すので無限ループします。 また、これらのオブジェクトはFireFoxのDomInspectorなどで見ればわかる通り大量のプロパティと、下層の何層にもなるオブジェクトプロパティの構成でできています。 このテーブルビュアーは最深層までfor()ループを繰り返します。 データが大きすぎるとフリーズします。 処理の計画を立てる場合は無理にソース中から呼び出すよりは、 ブラウザのアドレスバーにAPIへのURLを打ち込んでJSONデータを取り出せばリテラルでデータが手に入りますから、 それをJSON_Explorer.htmlのフォーム入力から使う方が便利だと思います。(その為にフォームインターフェイスを用意しています) 別窓で開いておいて参照用にする事でコーディングも楽になると思います。 APIでXMLデータなどを受け取ってxml_parseなどで処理して連想配列化されたデータの表示もできますが、 ちょっとしたデータでも結構な長さ(大きさ)の配列になる場合があるので、処理が重くなる場合が多いです。 データツリー及びバリュー画面がデータを100%正確に表示しているかどうかに関しては保証しかねます。 自己責任で利用してください。 これはコード中の変数の確認をする為の物ですので、基本ローカルやコーディング中に使う為の物です。 JSON_Explorerのフォーム入力インターフェイスをネット上に掲載する必要があるかもしれませんが、その際は著作権表示及びリンクが必ずはっきりわかるようにしてください。 コーディング上の無駄に見える部分は、大抵ブラウザの違いによる動作の違いを吸収する為の遠回りの処理です。 『Arrayか?Objectか?』『可変indexの配列か?連想配列か?』などを単純なプロパティチェックで見分ける方法を知らないので(^^; constructor以外で知ってる方は教えてくださいm(__)m 部分引用も含めて確認連絡を必ずください。 BBSやMailフォームはJPドメイン以外は受け付けません。 |
専用ページから申し込むと So-netより高い3万円CB
案ずるより産むが易し
使ってみれば疑問も解決 XREA+ (plus) 206円/月 ( お試し7日間 ) CORE SERVER 428円/月 ( お試し15日間 ) ロリポップ 270円/月 ( お試し期間10日間 ) ヘテムル 1620円/月 ( お試し期間15日間 ) さくら 129円/月 ( お試し期間2週間 ) |
|||||||||||||
お客さんに振込手数料を払わせていませんか?イーバンク銀行同士なら振込手数料無料。
オフィスで簡単振込み
イーバンク銀行 ビジネス口座
|