Skip to content

@pmun/utils / parseJsonStr

Function: parseJsonStr() ​

ts
function parseJsonStr<T>(str?, defaultValue?): string | Record<string, any> | T;

解析JSON字符串,处理异常情况

支持解析各种有效的JSON格式,包括对象、数组、字符串、数字、布尔值等。 空值或解析失败时返回指定的兜底值;未指定时,空值返回空对象,解析失败返回原始字符串。

Type Parameters ​

T ​

T = any

Parameters ​

str? ​

待解析的字符串,省略时返回 defaultValue,未指定兜底值时返回 {}

null | string

defaultValue? ​

T

空值或解析失败时的兜底值;省略时,undefined、null 和空字符串返回 {},解析失败返回原始字符串

Returns ​

string | Record<string, any> | T

解析后的 JSON 值;空值或解析失败时按 defaultValue 的规则返回

Example ​

ts
// 解析对象
parseJsonStr('{"name": "Tom", "age": 25}') // { name: 'Tom', age: 25 }

// 解析数组
parseJsonStr('[1, 2, 3]') // [1, 2, 3]

// 解析基础类型
parseJsonStr('"hello"') // 'hello'
parseJsonStr('123') // 123
parseJsonStr('true') // true

// 处理无效JSON
parseJsonStr('{invalid json}') // '{invalid json}'(返回原字符串)

// 处理空值
parseJsonStr('') // {}
parseJsonStr(null) // {}
parseJsonStr(undefined) // {}

// 自定义默认值
parseJsonStr('invalid', null) // null

// 非JSON格式的字符串
parseJsonStr('hello world') // 'hello world'