Skip to main content
Glama

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
NameRequiredDescriptionDefault
targetYes
partial_jsonYes
allow_partialNo

Implementation Reference

  • 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,
            },
        )
  • 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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/BitingSnakes/pydantic-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server