@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'