資料工作流程

JSON Pointer、JSON Patch 與 Merge Patch:路徑及安全修改

路徑識別一個值,補丁描述一次修改;兩者都不能證明資料符合應用程式 Schema,或可安全公開。

內容更新: · 維護者與修正回報

精確路徑,不是 JSONPath

RFC 6901 使用斜線分隔的片段。編碼時先將 ~ 換成 ~0,再將 / 換成 ~1。空路徑選取整份文件,/ 選取空字串鍵;路徑不存在與值為 null 不同。

陣列索引必須是標準非負整數:0 有效,01 無效。- 不是既有項目;JSON Patch 只在新增至陣列末尾時使用。URI fragment 形式以 # 開頭並進行百分比編碼;鍵中的空白有意義,不應自動去除。

選擇修改契約

RFC 6902 JSON Patch 是依序執行 add、remove、replace、move、copy、test 的陣列。path 與 from 必須是一般 JSON Pointer,不是 URI fragment。test 比較 JSON 值,物件鍵的順序不影響相等。本工作台任一步失敗即停止整筆交易,不提供部分結果複製或下載。

RFC 7396 Merge Patch 依物件結構修改:null 刪除欄位、物件遞迴合併,陣列或其他值則整體取代。要將物件欄位設為 null 或修改特定陣列項目,請用 JSON Patch。JSON Patch 移除根節點後沒有文件,不是 JSON null。

明確保留精度與匯出界線

JSON 語法允許超出 JavaScript 精確範圍的數字,也未要求物件鍵唯一。這些工具保守拒絕重複鍵、未成對 Unicode 代理碼、負零與序列化後會改值的數字。識別碼、大整數及精確小數請使用字串,不接受默默四捨五入。

JSONL 每行必須是一個完整 JSON 值。允許最後 LF 或 CRLF,拒絕內部空白行與 UTF-8 BOM;任一錯誤紀錄會阻止完整匯出。預覽上限不會截斷下載資料;緊湊 JSON 可避免深層輸入因縮排而大量配置記憶體。

輸入只存在本頁記憶體,不進入連結、儲存或工具分析。請用可拋棄資料,分享前檢查匯出內容。原型相關補丁路徑是本工具明示拒絕範圍;路徑命中不代表授權或匿名化。

{"a/b":{"~key":null},"":7}
Pointer: /a~1b/~0key → null
Pointer: / → 7
Patch: [{"op":"replace","path":"/a~1b/~0key","value":3}]
Merge Patch: {"a/b":{"~key":null}} → 刪除 ~key

資料可信度

資料來源