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

仅扁平化JSON中acf二级字段 保留id等其余一级字段原有结构

解决方案

实现思路

你之前的递归函数会把所有嵌套对象全部展开,所以才会把title、status这类需要保留的嵌套结构也破坏了。我们不需要全量递归,只针对性处理acf这一个字段即可:

  • 遍历数据数组中的每个对象元素
  • 保留所有非acf的一级字段原有结构(id、title完全不用修改)
  • 把acf对象内的所有属性直接合并到当前对象的一级层级
  • 移除原来的acf字段即可

完整代码

// 先修正你原始数据的笔误(重复写了var data、多余逗号)
var data = [{
    "id": 451,
    "title": {
        "rendered": "title1"
    },
    "acf": {
        "floor": "6",
        "business": [
            "business"
        ],
        "status": {
            "value": "null",
            "label": "Määramata"
        },
        "suund": "",
        "area": {
            "value": "full",
            "label": "Terve korrus"
        },
        "suurus": "",
        "tookohad": ""
    }
}];

// 处理函数
const processedData = data.map(item => {
    // 解构出acf字段,其他字段保留为rest
    const { acf, ...rest } = item;
    // 把rest和acf的属性展开合并成新对象返回
    return {
        ...rest,
        ...acf
    };
});

console.log(processedData);

效果说明

运行后得到的结构完全符合你的要求:id、title的嵌套结构原封不动,acf下的floor、business、status等所有字段全部提到一级层级,不会额外展开其他嵌套结构。如果你需要修改字段名比如把suurus改成size,在合并的时候单独赋值替换即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 02:45:06