react-diagram シリアル化 Json 解釈 ケース分析

react-diagram シリアル化 Json 解釈 ケース分析

このドキュメントの目的はreact-diagramフレームワーク モデルの Json シリアル化を説明することです。ドキュメントが不足しているため、試行錯誤を繰り返しながらテストすることしかできません。

シリアル化ケース 1: 空のキャンバス

ここに画像の説明を挿入

{
  "id": "27",
  "オフセットX": 0,
  "オフセットY": 0,
  「ズーム」: 100,
  "グリッドサイズ": 0,
  「レイヤー」: [
    {
      "id": "28",
      "タイプ": "ダイアグラムリンク",
      "isSvg": 真、
      「変換済み」:true、
      「モデル」: {
        
      }
    },
    {
      "id": "30",
      "type": "ダイアグラムノード",
      "isSvg": 偽、
      「変換済み」:true、
      「モデル」: {
        
      }
    }
  ]
}

グラフィック表示

ここに画像の説明を挿入

シリアル化ケース2: 単一ノード

ここに画像の説明を挿入

{
  "id": "27",
  "オフセットX": 0,
  "オフセットY": 0,
  「ズーム」: 100,
  "グリッドサイズ": 0,
  「レイヤー」: [
    {
      "id": "28",
      "タイプ": "ダイアグラムリンク",
      "isSvg": 真、
      「変換済み」:true、
      「モデル」: {
        
      }
    },
    {
      "id": "30",
      "type": "ダイアグラムノード",
      "isSvg": 偽、
      「変換済み」:true、
      「モデル」: {
        "64": {
          "id": "64",
          "タイプ": "デフォルト",
          "x": 187.0056915283203,
          "y": 219.91477584838867,
          「ポート」: [
            {
              "id": "65",
              "タイプ": "デフォルト",
              "x": ヌル、
              "y": ヌル、
              "名前": "アウト",
              「配置」:「右」、
              "親ノード": "64",
              「リンク」: [
                
              ]、
              「in」:偽、
              "ラベル": "アウト"
            }
          ]、
          "名前": "ノード 1",
          "色": "rgb(0,192,255)",
          "ポート順序": [
            
          ]、
          "ポート出力順序": [
            「65」
          ]
        }
      }
    }
  ]
}

グラフィック表示

ここに画像の説明を挿入

シリアル化ケース 3: 1 つの入力ノードと 1 つの出力ノード

ここに画像の説明を挿入

{
  "id": "27",
  "オフセットX": 0,
  "オフセットY": 0,
  「ズーム」: 100,
  "グリッドサイズ": 0,
  「レイヤー」: [
    {
      "id": "28",
      "タイプ": "ダイアグラムリンク",
      "isSvg": 真、
      「変換済み」:true、
      「モデル」: {
        
      }
    },
    {
      "id": "30",
      "type": "ダイアグラムノード",
      "isSvg": 偽、
      「変換済み」:true、
      「モデル」: {
        "64": {
          "id": "64",
          "タイプ": "デフォルト",
          "x": 187.0056915283203,
          "y": 219.91477584838867,
          「ポート」: [
            {
              "id": "65",
              "タイプ": "デフォルト",
              "x": 230.6392059326172,
              "y": 248.57954025268555,
              "名前": "アウト",
              「配置」:「右」、
              "親ノード": "64",
              「リンク」: [
                
              ]、
              「in」:偽、
              "ラベル": "アウト"
            }
          ]、
          "名前": "ノード 1",
          "色": "rgb(0,192,255)",
          "ポート順序": [
            
          ]、
          "ポート出力順序": [
            「65」
          ]
        },
        "69": {
          "id": "69",
          "タイプ": "デフォルト",
          "x": 420.0056915283203,
          "y": 244.91477584838867,
          「ポート」: [
            {
              "id": "70",
              "タイプ": "デフォルト",
              "x": ヌル、
              "y": ヌル、
              "名前": "中",
              "配置": "左",
              "親ノード": "69",
              「リンク」: [
                
              ]、
              「in」:真、
              "ラベル": "中"
            }
          ]、
          "名前": "ノード2",
          "色": "rgb(192,255,0)",
          "ポート順序": [
            「70」
          ]、
          "ポート出力順序": [
            
          ]
        }
      }
    }
  ]
}

グラフィック表示

ここに画像の説明を挿入

シリアル化の例 4: 入力ノード、出力ノード、接続

ここに画像の説明を挿入

{
  "id": "27",
  "オフセットX": 0,
  "オフセットY": 0,
  「ズーム」: 100,
  "グリッドサイズ": 0,
  「レイヤー」: [
    {
      "id": "28",
      "タイプ": "ダイアグラムリンク",
      "isSvg": 真、
      「変換済み」:true、
      「モデル」: {
        "36": {
          "id": "36",
          "タイプ": "デフォルト",
          "ソース": "32",
          "ソースポート": "33",
          "ターゲット": "34",
          "ターゲットポート": "35",
          「ポイント」: [
            {
              "id": "37",
              "タイプ": "ポイント",
              "x": 0,
              "y": 0
            },
            {
              "id": "38",
              "タイプ": "ポイント",
              "x": 0,
              "y": 0
            }
          ]、
          「ラベル」: [
            
          ]、
          「幅」: 2,
          "色": "グレー",
          「曲線美」: 50,
          "選択された色": "rgb(0,192,255)"
        }
      }
    },
    {
      "id": "30",
      "type": "ダイアグラムノード",
      "isSvg": 偽、
      「変換済み」:true、
      「モデル」: {
        "32": {
          "id": "32",
          "タイプ": "デフォルト",
          "x": 100,
          "y": 100,
          「ポート」: [
            {
              "id": "33",
              "タイプ": "デフォルト",
              "x": 100,
              "y": 100,
              "名前": "アウト",
              「配置」:「右」、
              "親ノード": "32",
              「リンク」: [
                「36」
              ]、
              「in」:偽、
              "ラベル": "アウト"
            }
          ]、
          "名前": "ノード 1",
          "色": "rgb(0,192,255)",
          "ポート順序": [
            
          ]、
          "ポート出力順序": [
            「33」
          ]
        },
        "34": {
          "id": "34",
          "タイプ": "デフォルト",
          "x": 400,
          "y": 100,
          「ポート」: [
            {
              "id": "35",
              "タイプ": "デフォルト",
              "x": 400,
              "y": 100,
              "名前": "中",
              「配置」:「左」、
              "親ノード": "34",
              「リンク」: [
                「36」
              ]、
              「in」:真、
              "ラベル": "中"
            }
          ]、
          "名前": "ノード2",
          "色": "rgb(192,255,0)",
          "ポート順序": [
            「35」
          ]、
          "ポート出力順序": [
            
          ]
        }
      }
    }
  ]
}

グラフィック表示

ここに画像の説明を挿入

推測と分析

1. ルートディレクトリ

まず、ルート ディレクトリには 5 つのパラメーターがあります。

id : このパラメータは常に 27 です。その意味は不明であり、あまり注意を払う必要はありません。

offsetX : これは観測中心の X 軸からの距離を参照します。

offsetY : 観測中心と Y 軸間の距離を示します。

zoom : 拡大の度合いを表します。

gridSize : 画像内のグリッドのサイズを示します。

2.0レイヤー[0]

  • このLayer 、内部に 2 つの変数を持つ配列です。上記の変更とtypeの説明を見ると、1 つは連線で、もう 1 つは節點であることがわかります。
  • まず連線に注目しましょう:

id :不明。

type : タイプを参照します。

isSvg : SVG タイプかどうかは関数が不明です。

transformed : 移動可能かどうかを参照します。

model : 下記に別途説明

2.1. モデル(図表リンク)

ここに画像の説明を挿入

id :不明。 type : タイプを参照します。

source : 接続のソースノード ID を参照します。

sourcePort : 接続の送信元ポート ID を参照します。

target : 接続のターゲットノード ID を参照します。

targetPort : 接続ターゲットポート ID を参照します。

width : 幅を指します。

color : 色を指します。

curvyness : 曲率を指します。

selectedColor : 選択された色。

2.1.1. ポイント

ここに画像の説明を挿入

id : ID を参照します。

type : タイプを参照します。以下省略。

2.2. レイヤー[1]

ここに画像の説明を挿入

id :省略。

type : タイプを参照します。

: ? isSvgなぜこれが間違っているのでしょうか?

transformed : 省略。

2.2.1 モデル(ダイアグラムノード)

ここに画像の説明を挿入

前四個は省略。

ports : 後ほど別途説明します。

name : 表示名。

color : 表示色

portsInOrder : を表す

ノードIn 、上記のtargetの番号に対応します。

portsOutOrder : を表す

上記のsource番号に対応するOutノード。

2.2.2. ポート

ここに画像の説明を挿入

前四個は省略。

name : 出力ノード

alignment : 正しい方向。

parentNode : 要素が接続されているノードを表します。

links : それに接続された線を表します。

in : 入力があるかどうか。

label : ラベル。

3. その他のケーススタディ

3.1. 出力インターフェースの追加

ここに画像の説明を挿入

出力ポートを追加するだけで、その ID を out の位置に追加することを忘れないでください。

3.2. 入力インターフェースの追加

以上が react-diagram serialization Json 解釈の事例分析の詳細です。 react-diagram serialization Json の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • JavaScript による JSON の解析とシリアル化の例の分析
  • Jackson エンティティの json への変換が NULL または空であり、シリアル化に参加しません (例の説明)
  • JS は JSON シリアル化とデシリアル化関数の例を実装します
  • jQueryはフォーム要素をJSONオブジェクトにシリアル化するメソッドを実装します

<<:  Linux ドメイン ネーム サービス DNS 設定方法

>>:  MySQL 8.0.12 のインストールと設定のチュートリアル

推薦する

検索エンジンのウェブサイトの入り口の無料コレクション

1: Baiduウェブサイトログイン入口ウェブサイト: http://www.baidu.com/s...

LinuxデバッガGDBの基本的な使い方の詳細な説明

目次1. 概要2. gdbデバッグ2.1. ブレークポイントを設定する2.1.1. ブレークポイント...

JavaScript での正規表現の使用について詳しく学ぶ

目次1. 正規表現とは何か1. 正規表現の特徴2. 正規表現の使用2. 正規表現における特殊文字1....

JS にこれがあるのはなぜですか?

目次1. 需要2. 解決策3. 最初の改善4.砂糖を加える5. 理解不能6. 問題点7. オブジェク...

加算、減算、乗算、除算の機能を実現するには、HTML に 2 つの数値を入力します。

1. parseFloat() 関数Web ページ上に簡単な計算機を作成し、テキスト ボックスに ...

Eclipseを使用してMySQLデータベースに接続する方法を説明します

序文常にエラーが発生するため、MySQL データベースに接続するプロセスを記録します。接続プロセス1...

MySQLの通常インデックスとユニークインデックスの違いの詳しい説明

目次1 概念上の区別2 事例紹介3 クエリパフォーマンス4 アップデートのパフォーマンス4.1 記憶...

Linuxシステムのログの詳細な紹介

目次1. ログ関連サービス2. システム内の共通ログファイル1. ログ関連サービスCentOS 6....

Dockerの動作モードと原理の詳細な説明

次の図に示すように: 仮想マシンと Docker を使用するとき、「なぜ Docker は VM よ...

Linux の特別な権限 SUID、SGID、SBIT の詳細な説明

序文Linux のファイルまたはディレクトリの権限については、通常の rwx 権限についてすべて知っ...

JavaScript はクリックして画像の形状を変更する (変換アプリケーション) を実装します。

JavaScriptをクリックすると画像の形状が変わります(変形の応用)。参考までに具体的な内容は...

MySQLで行を列に変換する方法

MySQL の行から列への操作いわゆる行から列への操作は、テーブルの行情報を列情報に変換することです...

docker.service 起動エラーの詳細なトラブルシューティング

エラーを報告するには次のコマンドを実行しますsystemctl dockerを再起動しますエラーメッ...

SecureCRT に基づくリモート Linux ホストへのファイルのアップロードとダウンロードのグラフィカルな手順

wget や curl ツールを使用して、Linux サーバーで大規模なネットワーク ファイルを直接...

Bash スクリプトでの配列メソッドの作成と使用の概要

Bashで配列を定義するbash スクリプトで新しい配列を作成する方法は 2 つあります。 1 つ目...