# JSON Merge Patch tester

- Human page: https://happytails.ai/en/developer-tools/json-merge-patch-tester/
- Markdown: https://happytails.ai/en/developer-tools/json-merge-patch-tester.md
- Structured JSON: https://happytails.ai/agents/en/developer-tools/json-merge-patch-tester/index.json
- Visibility: public

## Tool capabilities

| Property | Value |
| --- | --- |
| Tool ID | `json-merge-patch-tester` |
| Category | developer-tools |
| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |
| Browser execution | Use the visible action or interactive controls. |
| Browser processing | Browser; see tool notes for network behavior. |
| HTTP API | Not callable through HTTP. |
| Browser-agent interface | No callable WebMCP interface. |

### Implementation notes

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.

### Inputs and settings

Text input: Original JSON document.

Example or placeholder shown in the interface (not a validated fixture):

```text
{
  "profile": {"name": "Alex", "city": "Lisbon"},
  "tags": ["old"],
  "active": true
}
```

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.

| Setting | Meaning | Control type | Default | Constraints |
| --- | --- | --- | --- | --- |
| `change` | Merge patch | text | "{\n  \"profile\": {\"city\": null},\n  \"tags\": [\"new\"],\n  \"score\": 8\n}" |  |

### Planning specification

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.

This describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.

### Complete machine-readable capability record

```json
{
  "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"
  }
}
```

## Page guide

Apply a JSON Merge Patch to a document and inspect the result before updating an API.

How can we improve this tool?

Report a problem or share an idea.

Please leave out private information. Your message and the tool name go to our team via PostHog.

### How to use JSON Merge Patch tester

1. Paste the original JSON document and the merge patch, or open two UTF-8 JSON files.
2. Apply the patch and inspect the result. No API request is sent.
3. Copy the result or download the complete JSON and report.

## Useful next steps

- [JSON Patch builder](https://happytails.ai/en/developer-tools/json-patch-builder/) ([Markdown](https://happytails.ai/en/developer-tools/json-patch-builder.md))

- [JSON formatter](https://happytails.ai/en/developer-tools/json-formatter/) ([Markdown](https://happytails.ai/en/developer-tools/json-formatter.md))

- [JSON diff](https://happytails.ai/en/developer-tools/json-diff/) ([Markdown](https://happytails.ai/en/developer-tools/json-diff.md))

## Null removes an object member

In 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.

### Arrays are replaced in full

JSON 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.
