You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用TypeScript将JSON数组名称替换为其直接字段名

TypeScript实现指定JSON结构转换

输入结构

{
  "singleField": [
    {
      "fieldName": "company",
      "fieldValue": "xyz"
    }
  ]
}

目标输出结构

{
  "company": [
    {
      "fieldValue": "xyz"
    }
  ]
}

实现代码

首先定义TypeScript类型约束,保证类型安全:

// 输入数组项的类型
interface InputFieldItem {
  fieldName: string;
  fieldValue: any;
}

// 完整输入数据类型
interface InputData {
  singleField: InputFieldItem[];
}

// 输出数据类型
type OutputData = Record<string, Array<{ fieldValue: any }>>;

然后编写核心转换函数:

function transformStructure(input: InputData): OutputData {
  const output: OutputData = {};

  input.singleField.forEach(item => {
    const { fieldName, fieldValue } = item;
    // 初始化目标键对应的数组(如果不存在)
    if (!output[fieldName]) {
      output[fieldName] = [];
    }
    // 向目标数组添加仅含fieldValue的对象
    output[fieldName].push({ fieldValue });
  });

  return output;
}

使用示例

// 模拟输入数据
const rawInput: InputData = {
  "singleField": [
    {
      "fieldName": "company",
      "fieldValue": "xyz"
    }
  ]
};

// 执行转换并打印结果
const transformedResult = transformStructure(rawInput);
console.log(JSON.stringify(transformedResult, null, 2));

逻辑说明

  1. 通过TypeScript接口明确输入输出的结构,避免类型不匹配问题
  2. 遍历输入的singleField数组,提取每个项的fieldName和fieldValue
  3. 以fieldName作为新对象的键,将仅包含fieldValue的对象存入对应数组
  4. 自动支持多个同fieldName的场景(若输入数组中有多个相同fieldName的项,会全部存入同一个目标数组)

内容的提问来源于stack exchange,提问作者amid

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 15:36:34