parse_partial_json
Parse and validate incomplete JSON fragments to extract structured data from partial inputs, enabling reliable data extraction from incomplete sources.
Instructions
Best-effort parse partial JSON, then validate the parsed fragment.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | ||
| partial_json | Yes | ||
| allow_partial | No |
Implementation Reference
- src/pydantic_mcp/helpers.py:1383-1420 (handler)The helper function that performs the parsing and validation logic for `parse_partial_json`.
def parse_partial_json_report( runtime_target: RuntimeTarget, *, partial_json: str, allow_partial: bool, ) -> ToolResponse: try: parsed = from_json(partial_json, allow_partial=allow_partial) except ValueError as exc: return ToolResponse( resolved_target=runtime_target.resolved, diagnostics=[ Diagnostic(level="error", message=str(exc), code="partial_json_error") ], result={ "parsed_fragment": None, "validation": {"ok": False, "errors": []}, "stopped_at": len(partial_json), }, ) validation = validate_with_adapter( runtime_target, data=parsed, mode="python", strict=False, context=None, ) consumed = _approximate_json_consumed_length(partial_json) return ToolResponse( resolved_target=runtime_target.resolved, diagnostics=validation.diagnostics, result={ "parsed_fragment": to_jsonable(parsed), "validation": validation.result, "stopped_at": consumed, }, ) - src/pydantic_mcp/tools.py:272-289 (handler)The tool definition/handler for `parse_partial_json`, which uses `parse_partial_json_report` to perform the actual work.
def parse_partial_json( target: str, partial_json: str, allow_partial: bool = True, ) -> ToolResponse: """Best-effort parse partial JSON, then validate the parsed fragment.""" runtime_target = resolve_target( target, registry=REGISTRY, settings=SERVER_SETTINGS, ) response = parse_partial_json_report( runtime_target, partial_json=partial_json, allow_partial=allow_partial, ) _record_response_errors("parse_partial_json", target, response) return response