如何将JavaScript一维数组转换为带自定义键的JSON对象数组
实现方案
核心逻辑是先通过数组的map方法把一维数组转换为带自定义键的对象数组,再序列化得到目标JSON:
- 最简实现(固定键名)
const arrayEx = [1,2,3,4] // 转换为目标结构的JS数组 const structuredArray = arrayEx.map(item => ({ exampleKey: item })) // 序列化为JSON字符串 const jsonArrayEx = JSON.stringify(structuredArray)
注意:箭头函数直接返回对象时需要用小括号包裹对象,否则大括号会被识别为函数体边界。
- 通用封装(支持动态自定义键名)
如果需要灵活切换键名,可以用计算属性封装为复用函数:
function arrToCustomKeyedJson(arr, customKey) { const keyedArr = arr.map(item => ({ [customKey]: item })) return JSON.stringify(keyedArr) } // 调用示例 const result = arrToCustomKeyedJson([1,2,3,4], 'exampleKey')
误区说明
你之前遇到的JSON.stringify基于索引生成键的情况,是直接对一维基础数组序列化的结果。JSON.stringify本身只负责序列化现有JS数据结构为JSON字符串,不会主动修改数据结构,所以先构造好目标结构再序列化即可达到需求。
内容的提问来源于stack exchange,提问作者Qiuzman
相关产品推荐
相关产品推荐

