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

如何从JSON对象中批量筛选指定字段并输出目标JSON结构?

批量筛选JSON字段的实现方案

问题说明

原始JSON数据:

{
    "hits":[
      {
        "date": "10142201",
        "name": "jeremy",
        "age":"19",
        "identity":"A"
      },
      {
        "date":"10142202",
        "name": "zach",
        "age": "20",
        "identity":"B"
      },
      {
        "date":"10142203",
        "name": "Jack",
        "age": "21",
        "identity":"C"
      },
      {
        "date":"10142204",
        "name": "Jimmy",
        "age":"23",
        "identity":"D"
      }
    ],
    "total": "4",
    "name": "generic-names",
    "identity": "generic-identity"
}

需要筛选出hits数组中每个对象的name字段,以及顶层的total字段,目标输出:

{
    "hits":[
      {
        "name": "jeremy"
      },
      {
        "name": "zach"
      },
      {
        "name": "Jack"
      },
      {
        "name": "Jimmy"
      }
    ],
    "total": "4"
}

当前仅能通过GET参数单次获取一个字段,需实现批量筛选并输出目标JSON。


解决方案

1. 后端直接处理(推荐)

先获取完整的原始JSON数据,再手动提取所需字段,返回处理后的结果:

Node.js 示例

// 假设已获取原始数据存入originalData变量
const filteredData = {
  hits: originalData.hits.map(item => ({ name: item.name })),
  total: originalData.total
};

// 将筛选后的数据作为响应返回
res.json(filteredData);

Python 示例

import json
from flask import jsonify

# 假设已获取原始数据存入original_data字典
filtered_data = {
    "hits": [{"name": item["name"]} for item in original_data["hits"]],
    "total": original_data["total"]
}

# 返回筛选后的JSON响应
return jsonify(filtered_data)

2. 前端获取数据后处理

如果无法修改后端逻辑,可在前端拿到完整数据后自行筛选:

fetch('你的API地址')
  .then(response => response.json())
  .then(originalData => {
    const filteredData = {
      hits: originalData.hits.map(item => ({ name: item.name })),
      total: originalData.total
    };
    // 后续使用筛选后的数据
    console.log(filteredData);
  });

3. 扩展GET参数规则(若API可修改)

约定用逗号分隔的GET参数批量指定字段,比如?fields=total,hits.name,后端解析该参数后批量提取:

  • 拆分fields参数,区分顶层字段(如total)和嵌套字段(如hits.name)
  • 顶层字段直接从原始数据中提取,嵌套字段遍历对应数组提取目标属性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 21:05:27