JSON
Funkcia provides a safe JSON
module to work with value encoding/decoding without breaking your application.
SafeJSON
SafeJSON provides a safe wrapper around JavaScript's native JSON
methods, returning Result
types instead of throwing exceptions, preserving all signature overloads of the original namespace.
parse
Converts a JavaScript Object Notation (JSON) string into an object, wrapped in a Result
.
import { SafeJSON } from 'funkcia/json';
// ┌─── Result<unknown, SyntaxError>
// â–¼
const goodJson = SafeJSON.parse('{ "name": "John" }');
// Output: Ok({ name: "John" })
const invalidJson = SafeJSON.parse('{ "name": John }');
// Output: Error(SyntaxError: Unexpected token 'J', "{ "name": John }" is not valid JSON)
stringify
Converts a JavaScript value to a JavaScript Object Notation (JSON) string, wrapped in a Result
.
import { SafeJSON } from 'funkcia/json';
// With function replacer
// ┌─── Result<string, TypeError>
// â–¼
const result = SafeJSON.stringify(
{ name: "John", age: 30 },
(key, value) => typeof value === 'number' ? value.toString() : value,
2
);
// Output: Ok('{\n "name": "John",\n "age": "30"\n}')
// With array replacer
// ┌─── Result<string, TypeError>
// â–¼
const result = SafeJSON.stringify(
{ name: "John", age: 30, email: "[email protected]" },
['name', 'age'],
2
);
// Output: Ok('{\n "name": "John",\n "age": 30\n}')
Last updated
Was this helpful?