export function isJsonString(str: string | null): boolean { if (typeof str === 'string') { try { let obj = JSON.parse(str) as string | {[key: string]: unknown}; if (typeof obj === 'string') { obj = JSON.parse(obj) as {[key: string]: unknown}; } if (typeof obj === 'object' && obj) { return true; } return false; } catch (e) { return false; } } return false; } export function jsonString2jsonObject(jsonString: string | null): T | null { if (!isJsonString(jsonString)) { return null; } let obj = JSON.parse(jsonString as string) as string | T; if (typeof obj === 'string') { obj = JSON.parse(obj) as T; } return obj; }