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

如何在JavaScript中从JSON数组提取指定address子字段并重组结构

问题描述

我有一个包含多个JSON对象的输入数组,每个JSON对象均包含相同的address字段。需要从中提取所有address下的street、name、type字段,并整理为指定的JSON结构。

输入示例:

[
    {
        "address": {
              "street" : "aaaa",
              "name": "dsd",
              "type": "sds"
         }
    },
    {
        "address": {
              "street" : "bbbb",
              "name": "gdg",
              "type": "gdg"
         }
    },
    ...
]

期望输出示例:

{"address": [
    {
       "street" : "aaaa",
       "name": "dsd",
       "type": "sds"
     },
    {
       "street" : "bbbb",
       "name": "gdg",
       "type": "gdg"
     },
   ...
  ]
}
解决方案

JavaScript实现

遍历输入数组提取目标字段,分两种场景处理:

// 场景1:确认address仅包含street、name、type三个字段时,直接提取
const input = [/* 你的输入数组 */];
const output = {
  address: input.map(item => item.address)
};
console.log(JSON.stringify(output, null, 2));
// 场景2:需严格过滤冗余字段,仅保留指定的三个字段
const input = [/* 你的输入数组 */];
const output = {
  address: input.map(({ address: { street, name, type } }) => ({ street, name, type }))
};
console.log(JSON.stringify(output, null, 2));

Python实现

用列表推导式完成字段提取与结构整理:

import json

# 场景1:直接提取address字段
input_data = [/* 你的输入数组 */]
output = {
    "address": [item["address"] for item in input_data]
}
print(json.dumps(output, indent=2))
import json

# 场景2:严格保留指定字段
input_data = [/* 你的输入数组 */]
output = {
    "address": [
        {
            "street": item["address"]["street"],
            "name": item["address"]["name"],
            "type": item["address"]["type"]
        } for item in input_data
    ]
}
print(json.dumps(output, indent=2))

说明

  • 第一种写法代码简洁,适合明确address无冗余字段的场景;
  • 第二种写法更严谨,即使address存在其他字段,也只会保留指定的三个字段,确保输出结构完全符合要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 09:45:37