Skip to main content

Function: safeJsonParse()

safeJsonParse<T>(json: string, validator: (data: unknown) => data is T): SafeJsonResult<T>

Defined in: shared/utils/jsonSafety.ts:114

Parses a JSON string and validates the resulting value with a type guard.

Type Parameters​

T​

T

Validated shape returned on success.

Parameters​

json​

string

Raw JSON string to parse.

validator​

(data: unknown) => data is T

Custom type guard ensuring the parsed value satisfies T.

Returns​

SafeJsonResult<T>

Structured result containing either the parsed value or a message.

Remarks​

Any failureβ€”syntactic or semanticβ€”becomes a structured error message inside the returned SafeJsonResult object, so callers never need try/catch for parsing.

Example​

import { logger } from "@app/services/logger";

const result = safeJsonParse(jsonString, (data): data is User => {
return (
typeof data === "object" &&
data !== null &&
typeof (data as User).id === "string" &&
typeof (data as User).name === "string"
);
});

if (result.success && result.data) {
logger.info("Parsed user", { name: result.data.name });
} else {
logger.error("Failed to parse user", result.error);
}