{
  "title": "JSON Merge Patch tester",
  "human_url": "https://happytails.ai/en/developer-tools/json-merge-patch-tester/",
  "agent_url": "https://happytails.ai/agents/en/developer-tools/json-merge-patch-tester/",
  "language": "en",
  "markdown_url": "https://happytails.ai/en/developer-tools/json-merge-patch-tester.md",
  "content": "JSON Merge Patch tester\nApply a JSON Merge Patch to a document and inspect the result before updating an API.\nHow can we improve this tool?\nReport a problem or share an idea.\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\nHow to use JSON Merge Patch tester\nPaste the original JSON document and the merge patch, or open two UTF-8 JSON files.\nApply the patch and inspect the result. No API request is sent.\nCopy the result or download the complete JSON and report.\nUseful next steps\nJSON Patch builder\nJSON formatter\nJSON diff\nNull removes an object member\nIn a merge patch, a null-valued object member removes that member. To store an explicit null, use another update format. A non-object patch, including a root null or an array, replaces the whole target.\nArrays are replaced in full\nJSON Merge Patch does not update individual array positions. It also works on data rather than formatting, so whitespace and key order can change. The report retains the original document and patch text.",
  "content_format": "text/plain",
  "visibility": "public",
  "links": [
    {
      "name": "JSON Patch builder",
      "url": "https://happytails.ai/en/developer-tools/json-patch-builder/"
    },
    {
      "name": "JSON formatter",
      "url": "https://happytails.ai/en/developer-tools/json-formatter/"
    },
    {
      "name": "JSON diff",
      "url": "https://happytails.ai/en/developer-tools/json-diff/"
    }
  ],
  "tool": {
    "id": "json-merge-patch-tester",
    "category": "developer-tools",
    "built": true,
    "requirements": "Up to 1,000,000 characters, 50,000 values and 64 nesting levels per document. UTF-8 file imports are limited to 1 MB. Processing runs in a local worker with a 10-second timeout and a bounded work budget. Duplicate keys and numbers that cannot be preserved safely are rejected.",
    "implementation": {
      "fields": [
        {
          "key": "change",
          "label": "Merge patch",
          "value": "{\n  \"profile\": {\"city\": null},\n  \"tags\": [\"new\"],\n  \"score\": 8\n}",
          "type": "text"
        }
      ],
      "inputMaxLength": 1000000,
      "inputErrorCode": "PATCH_INPUT",
      "note": "Apply RFC 7396 JSON Merge Patch locally. A null object member removes that member. Arrays and non-object patches replace the target value in full. Formatting and key order may change. This tool does not send an API request.",
      "experience": {
        "automatic": false,
        "single": false,
        "inputMaxLength": 1000000,
        "inputMode": "text",
        "label": "Original JSON document",
        "placeholder": "{\n  \"profile\": {\"name\": \"Alex\", \"city\": \"Lisbon\"},\n  \"tags\": [\"old\"],\n  \"active\": true\n}",
        "help": "Paste the original JSON document. Use the second editor for the merge patch or target document. Up to 1,000,000 characters. Review the settings before running.",
        "action": null
      },
      "mode": "explicit",
      "interactive": true
    },
    "execution": "Browser interface",
    "api": null,
    "browser_agent": {
      "supported": false,
      "name": null,
      "discovery": "WebMCP on the human page in a supporting browser",
      "verification": "See audit/API-AUDIT.md; availability is not verification"
    }
  },
  "markdown": "# JSON Merge Patch tester\n\n- Human page: https://happytails.ai/en/developer-tools/json-merge-patch-tester/\n- Markdown: https://happytails.ai/en/developer-tools/json-merge-patch-tester.md\n- Structured JSON: https://happytails.ai/agents/en/developer-tools/json-merge-patch-tester/index.json\n- Visibility: public\n\n## Tool capabilities\n\n| Property | Value |\n| --- | --- |\n| Tool ID | `json-merge-patch-tester` |\n| Category | developer-tools |\n| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |\n| Browser execution | Use the visible action or interactive controls. |\n| Browser processing | Browser; see tool notes for network behavior. |\n| HTTP API | Not callable through HTTP. |\n| Browser-agent interface | No callable WebMCP interface. |\n\n### Implementation notes\n\nApply RFC 7396 JSON Merge Patch locally. A null object member removes that member. Arrays and non-object patches replace the target value in full. Formatting and key order may change. This tool does not send an API request.\n\n### Inputs and settings\n\nText input: Original JSON document.\n\nExample or placeholder shown in the interface (not a validated fixture):\n\n```text\n{\n  \"profile\": {\"name\": \"Alex\", \"city\": \"Lisbon\"},\n  \"tags\": [\"old\"],\n  \"active\": true\n}\n```\n\nPaste the original JSON document. Use the second editor for the merge patch or target document. Up to 1,000,000 characters. Review the settings before running.\n\n| Setting | Meaning | Control type | Default | Constraints |\n| --- | --- | --- | --- | --- |\n| `change` | Merge patch | text | \"{\\n  \\\"profile\\\": {\\\"city\\\": null},\\n  \\\"tags\\\": [\\\"new\\\"],\\n  \\\"score\\\": 8\\n}\" |  |\n\n### Planning specification\n\nUp to 1,000,000 characters, 50,000 values and 64 nesting levels per document. UTF-8 file imports are limited to 1 MB. Processing runs in a local worker with a 10-second timeout and a bounded work budget. Duplicate keys and numbers that cannot be preserved safely are rejected.\n\nThis describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.\n\n### Complete machine-readable capability record\n\n```json\n{\n  \"id\": \"json-merge-patch-tester\",\n  \"category\": \"developer-tools\",\n  \"built\": true,\n  \"requirements\": \"Up to 1,000,000 characters, 50,000 values and 64 nesting levels per document. UTF-8 file imports are limited to 1 MB. Processing runs in a local worker with a 10-second timeout and a bounded work budget. Duplicate keys and numbers that cannot be preserved safely are rejected.\",\n  \"implementation\": {\n    \"fields\": [\n      {\n        \"key\": \"change\",\n        \"label\": \"Merge patch\",\n        \"value\": \"{\\n  \\\"profile\\\": {\\\"city\\\": null},\\n  \\\"tags\\\": [\\\"new\\\"],\\n  \\\"score\\\": 8\\n}\",\n        \"type\": \"text\"\n      }\n    ],\n    \"inputMaxLength\": 1000000,\n    \"inputErrorCode\": \"PATCH_INPUT\",\n    \"note\": \"Apply RFC 7396 JSON Merge Patch locally. A null object member removes that member. Arrays and non-object patches replace the target value in full. Formatting and key order may change. This tool does not send an API request.\",\n    \"experience\": {\n      \"automatic\": false,\n      \"single\": false,\n      \"inputMaxLength\": 1000000,\n      \"inputMode\": \"text\",\n      \"label\": \"Original JSON document\",\n      \"placeholder\": \"{\\n  \\\"profile\\\": {\\\"name\\\": \\\"Alex\\\", \\\"city\\\": \\\"Lisbon\\\"},\\n  \\\"tags\\\": [\\\"old\\\"],\\n  \\\"active\\\": true\\n}\",\n      \"help\": \"Paste the original JSON document. Use the second editor for the merge patch or target document. Up to 1,000,000 characters. Review the settings before running.\",\n      \"action\": null\n    },\n    \"mode\": \"explicit\",\n    \"interactive\": true\n  },\n  \"execution\": \"Browser interface\",\n  \"api\": null,\n  \"browser_agent\": {\n    \"supported\": false,\n    \"name\": null,\n    \"discovery\": \"WebMCP on the human page in a supporting browser\",\n    \"verification\": \"See audit/API-AUDIT.md; availability is not verification\"\n  }\n}\n```\n\n## Page guide\n\nApply a JSON Merge Patch to a document and inspect the result before updating an API.\n\nHow can we improve this tool?\n\nReport a problem or share an idea.\n\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\n\n### How to use JSON Merge Patch tester\n\n1. Paste the original JSON document and the merge patch, or open two UTF-8 JSON files.\n2. Apply the patch and inspect the result. No API request is sent.\n3. Copy the result or download the complete JSON and report.\n\n## Useful next steps\n\n- [JSON Patch builder](https://happytails.ai/en/developer-tools/json-patch-builder/) ([Markdown](https://happytails.ai/en/developer-tools/json-patch-builder.md))\n\n- [JSON formatter](https://happytails.ai/en/developer-tools/json-formatter/) ([Markdown](https://happytails.ai/en/developer-tools/json-formatter.md))\n\n- [JSON diff](https://happytails.ai/en/developer-tools/json-diff/) ([Markdown](https://happytails.ai/en/developer-tools/json-diff.md))\n\n## Null removes an object member\n\nIn a merge patch, a null-valued object member removes that member. To store an explicit null, use another update format. A non-object patch, including a root null or an array, replaces the whole target.\n\n### Arrays are replaced in full\n\nJSON Merge Patch does not update individual array positions. It also works on data rather than formatting, so whitespace and key order can change. The report retains the original document and patch text.\n"
}