You need to enable JavaScript to run this app. JavaScript:如何自定义转换JSON字符串为指定结构的对象数组
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.03 04:27:03