Parse JSON To Object
Safely parses a JSON string into an object with optional primitive value conversion.
Import
import { parseJsonToObject } from 'nhb-toolbox';
Function Signature(s)
function parseJsonToObject<T extends GenericObject = GenericObject>(
value: string,
parsePrimitives?: boolean
): T
Usage
Basic Parsing
const jsonString = '{"num":"42","bool":"true","text":"hello"}';
const result = parseJsonToObject(jsonString);
// Returns { num: 42, bool: true, text: "hello" }
Without Primitive Conversion
const jsonString = '{"num":"42","valid":true}';
const result = parseJsonToObject(jsonString, false);
// Returns { num: "42", valid: true }
API Reference
Type Parameters
Name | Description |
---|---|
T | Return type (defaults to GenericObject) |
Parameters
Name | Type | Description |
---|---|---|
value | string | JSON string to parse |
parsePrimitives | boolean | Convert stringified primitives (default: true) |
Returns
T
: Parsed object (or empty object on failure)
Key Features
- Safe Parsing: Returns empty object on failure
- Primitive Conversion: Optionally converts string values to primitives
- Type Safety: Ensures return value is always an object
- Strict Validation: Rejects non-object root elements
Examples
Handling Invalid JSON
parseJsonToObject('invalid json'); // Returns {}
parseJsonToObject('"just a string"'); // Returns {}
parseJsonToObject('null'); // Returns {}
Nested Conversion
const json = '{"nested":{"bool":"false","num":"3.14"}}';
parseJsonToObject(json);
// Returns { nested: { bool: false, num: 3.14 } }
Limitations
- Non-Objects: Rejects valid JSON with non-object roots
- Complex Types: Doesn't handle Date, RegExp etc.
- Custom Classes: Loses class instances
- Circular References: Cannot parse circular structures
Type Definitions
type GenericObject = Record<string, any>;
Recommended Use Cases
- API response parsing
- Configuration loading
- Data hydration
- Strict object parsing
- Safe JSON processing
Related Functions
parseJSON
: For parsing any JSON value (not just objects)- parseObjectValues: The primitive conversion utility used internally