JavaScript:如何自定义转换JSON字符串为指定结构的对象数组
自定义JSON结构转换实现方案
核心实现逻辑
常规JSON.parse仅能将字符串转为原生键值对对象,针对键名与目标结构不匹配的场景,可通过三步完成自定义转换:
- 先通过
JSON.parse将原始JSON字符串转为普通键值对象 - 借助
Object.entries()提取对象内所有[键, 值]二元组 - 将原JSON的键映射为目标结构的
Value属性、原JSON的值映射为目标结构的Type属性,最终组装为符合要求的对象数组
可直接运行的代码示例
基础JavaScript版本
// 原始JSON字符串 const rawJsonStr = `{ "Value1": "Type1", "Value2": "Type2" }` // 自定义转换流程 const rawParsed = JSON.parse(rawJsonStr) const targetResult = Object.entries(rawParsed).map(([key, value]) => ({ Value: key, Type: value }))
转换后输出结果完全匹配预期:
[ { Value: "Value1", Type: "Type1" }, { Value: "Value2", Type: "Type2" } ]
TypeScript适配版本
注意:原示例中接口直接命名为
Object会与JavaScript内置全局Object类型冲突,建议替换为独立命名避免编译报错
// 修正命名后的目标接口定义 interface CustomEntry { Value: string; Type: string; } const rawJsonStr = `{ "Value1": "Type1", "Value2": "Type2" }` const rawParsed = JSON.parse(rawJsonStr) const targetResult: CustomEntry[] = Object.entries(rawParsed).map(([key, value]) => ({ Value: key, Type: value }))
补充注意点
- 若原JSON中存在非字符串类型的键或值,需根据接口定义补充对应类型转换逻辑,保证匹配
Value、Type的字符串类型要求 - 若原JSON为空对象,转换逻辑会自动输出空数组,行为符合常规使用预期
内容的提问来源于stack exchange,提问作者NagaRajendra
相关产品推荐
相关产品推荐

