JSON オンライン結合

ローカル処理
app.merge.view

次の方法でも #data={"name":"Ada"} または #url=... データを流し込めます。読み取り後はアドレスバーから削除されます。

複数の JSON を1つにまとめます。デフォルト設定の上にユーザー設定を重ねる、何度かの API 結果を足す、といった用途に向いています。結合ルールはブラウザ内で実行されます。ディープマージは両方に現れる入れ子フィールドを残し、トップレベル上書きは同名キーを丸ごと置き換えます。

ディープマージ

入れ子オブジェクトは Key に沿って下へ結合し、丸ごと上書きしません。たとえばデフォルトの theme.color とユーザー設定の theme.font は両方残せます。

「ベース設定 + 環境上書き」のような場面に向いています。

衝突が見える

同じパスに両方の値があるときは、選んだ戦略に従います。結合前に不明なら、先に Diff で衝突パスを見てください。

配列は連結、上書き、重複排除から選べます。インデックスでディープマージされると決めつけないでください。

Diff と組み合わせる

先に Diff で差を見てから結合し、誤上書きを避けます。結合結果はフォーマットや並べ替えをして保存しやすくできます。

一方が空のときは空オブジェクトとして扱い、増分だけ貼れます。

ベース設定
{
  "theme": "light",
  "limits": { "maxSizeMB": 2 }
}
上書き後(例)
{
  "theme": "dark",
  "limits": { "maxSizeMB": 2, "debounceMs": 300 }
}
配列はどう結合されますか?

ツールのオプションどおり連結、上書き、重複排除です。インデックスで必ずディープマージされると仮定しないでください。

ファイルはアップロードされますか?

されません。複数のテキストを貼っても、結合は端末のメモリ内だけです。

トップレベル上書きとディープマージの違いは?

トップレベル上書きは右側オブジェクトで同名キーを丸ごと置き換えます。ディープマージは入れ子オブジェクトの中まで結合します。

3つ以上は結合できますか?

現在は2欄です。3つ以上なら先に2つを結合し、その結果を3つ目と結合してください。

おすすめの手順

  1. 左にデフォルト / 旧データ、右に上書き / 新データを貼ります。
  2. ディープマージ、トップレベル上書き、配列への結合から選びます。
  3. 配列がある場合は、連結、上書き、重複排除も選びます。
  4. 「結合を実行」を押し、結果を確認してコピーします。不明なら先に両側の原文を Diff してください。

設定系 JSON はディープマージが多いです。「後から書いたものが先を上書きする」機能フラグはトップレベル上書き向きです。