{
  "title": "JSON Patch builder",
  "human_url": "https://happytails.ai/en/developer-tools/json-patch-builder/",
  "agent_url": "https://happytails.ai/agents/en/developer-tools/json-patch-builder/",
  "language": "en",
  "markdown_url": "https://happytails.ai/en/developer-tools/json-patch-builder.md",
  "content": "JSON Patch builder\nCreate a JSON Patch from an original and target document, then verify that applying it produces the target.\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 Patch builder\nPaste the original and target JSON documents, or open two UTF-8 JSON files.\nBuild the patch. The tool reapplies its generated operations and checks the result against the target.\nCopy the patch or download the patch, resulting JSON and complete report.\nUseful next steps\nJSON Merge Patch tester\nJSON diff\nJSON formatter\nA deterministic patch, not a minimal patch\nThe builder uses add, remove and replace operations with escaped JSON Pointer paths. Object keys are handled in sorted order; changed arrays are replaced as a whole. Up to 500 operations are supported.\nReview before sending\nThe generated patch is verified locally against these documents. It does not contact an API, check authorization or protect against later server changes. It is not an editor or validator for arbitrary move, copy or test operations.",
  "content_format": "text/plain",
  "visibility": "public",
  "links": [
    {
      "name": "JSON Merge Patch tester",
      "url": "https://happytails.ai/en/developer-tools/json-merge-patch-tester/"
    },
    {
      "name": "JSON diff",
      "url": "https://happytails.ai/en/developer-tools/json-diff/"
    },
    {
      "name": "JSON formatter",
      "url": "https://happytails.ai/en/developer-tools/json-formatter/"
    }
  ],
  "tool": {
    "id": "json-patch-builder",
    "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": "Target JSON",
          "value": "{\n  \"profile\": {\"name\": \"Alex\", \"city\": \"Porto\"},\n  \"tags\": [\"new\"],\n  \"active\": true\n}",
          "type": "text"
        }
      ],
      "inputMaxLength": 1000000,
      "inputErrorCode": "PATCH_INPUT",
      "note": "Build and verify an RFC 6902 patch between two JSON documents. The builder emits add, remove and replace operations in deterministic order, replacing changed arrays in full. It does not promise a minimal patch or apply arbitrary move, copy or test operations. No API request is sent.",
      "experience": {
        "automatic": false,
        "single": false,
        "inputMaxLength": 1000000,
        "inputMode": "text",
        "label": "Original JSON document",
        "placeholder": "{\n  \"profile\": {\"name\": \"Alex\", \"city\": \"Lisbon\"},\n  \"tags\": [\"old\"]\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 Patch builder\n\n- Human page: https://happytails.ai/en/developer-tools/json-patch-builder/\n- Markdown: https://happytails.ai/en/developer-tools/json-patch-builder.md\n- Structured JSON: https://happytails.ai/agents/en/developer-tools/json-patch-builder/index.json\n- Visibility: public\n\n## Tool capabilities\n\n| Property | Value |\n| --- | --- |\n| Tool ID | `json-patch-builder` |\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\nBuild and verify an RFC 6902 patch between two JSON documents. The builder emits add, remove and replace operations in deterministic order, replacing changed arrays in full. It does not promise a minimal patch or apply arbitrary move, copy or test operations. No API request is sent.\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}\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` | Target JSON | text | \"{\\n  \\\"profile\\\": {\\\"name\\\": \\\"Alex\\\", \\\"city\\\": \\\"Porto\\\"},\\n  \\\"tags\\\": [\\\"new\\\"],\\n  \\\"active\\\": true\\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-patch-builder\",\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\": \"Target JSON\",\n        \"value\": \"{\\n  \\\"profile\\\": {\\\"name\\\": \\\"Alex\\\", \\\"city\\\": \\\"Porto\\\"},\\n  \\\"tags\\\": [\\\"new\\\"],\\n  \\\"active\\\": true\\n}\",\n        \"type\": \"text\"\n      }\n    ],\n    \"inputMaxLength\": 1000000,\n    \"inputErrorCode\": \"PATCH_INPUT\",\n    \"note\": \"Build and verify an RFC 6902 patch between two JSON documents. The builder emits add, remove and replace operations in deterministic order, replacing changed arrays in full. It does not promise a minimal patch or apply arbitrary move, copy or test operations. No API request is sent.\",\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}\",\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\nCreate a JSON Patch from an original and target document, then verify that applying it produces the target.\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 Patch builder\n\n1. Paste the original and target JSON documents, or open two UTF-8 JSON files.\n2. Build the patch. The tool reapplies its generated operations and checks the result against the target.\n3. Copy the patch or download the patch, resulting JSON and complete report.\n\n## Useful next steps\n\n- [JSON Merge Patch tester](https://happytails.ai/en/developer-tools/json-merge-patch-tester/) ([Markdown](https://happytails.ai/en/developer-tools/json-merge-patch-tester.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- [JSON formatter](https://happytails.ai/en/developer-tools/json-formatter/) ([Markdown](https://happytails.ai/en/developer-tools/json-formatter.md))\n\n## A deterministic patch, not a minimal patch\n\nThe builder uses add, remove and replace operations with escaped JSON Pointer paths. Object keys are handled in sorted order; changed arrays are replaced as a whole. Up to 500 operations are supported.\n\n### Review before sending\n\nThe generated patch is verified locally against these documents. It does not contact an API, check authorization or protect against later server changes. It is not an editor or validator for arbitrary move, copy or test operations.\n"
}