js中json与map数据互相转换
迪丽瓦拉
2024-03-25 21:33:25
0

1. 判断是否是合法的JSON字符串

/*** 判断是否是合法的Json字符串* @param str - 字符串*/
const isJsonStr = (str: string) => {if (typeof str === 'string') {try {const obj = JSON.parse(str)if (typeof obj === 'object' && obj) {return true} else {return false}} catch (e) {return false}}return false
}

2. JSON String 数据转 MAP

通过JSON.stringify将JSON转为String
再先执行第一步isJsonStr ,判断字符串是否为JSON字符串
再将JSON String 数据转 MAP

/*** JSON String 数据转 MAP* @param jsonStr - JSON String*/
const jsonStrToMap = (jsonStr: string) => {const jsonObj = JSON.parse(jsonStr)const map = new Map()for (const k of Object.keys(jsonObj)) {map.set(k, jsonObj[k])}return map
}

3. MAP 数据转 JSON String

MAP 数据转 JSON String
如果只想要json数据可直接return obj 即可

/*** MAP 数据转 JSON String* @param map - MAP对象*/
const mapToJsonStr = (map: Map) => {const newMap = cloneDeep(map)const obj: any = {}newMap.forEach((v, k) => (obj[k] = v))const JsonStr = JSON.stringify(obj)return JsonStr
}

相关内容