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

如何在嵌套JSON结构中查询friends下是否存在favoriteNumber字段

嵌套JSON中筛选friends数组包含favoriteNumber字段的实现方案

以下是不同常用场景下的实现方法:

1. JavaScript(浏览器/Node.js环境)

支持深层嵌套friends数组检查的实现:

// 单条JSON校验函数
function hasFavoriteNumberInFriends(jsonObj) {
  const friends = jsonObj.friends
  if (!Array.isArray(friends)) return false
  for (const friend of friends) {
    // 校验当前friend是否存在目标字段
    if ('favoriteNumber' in friend) return true
    // 递归检查friend下的friends数组,不需要深层校验可删除此行
    if (hasFavoriteNumberInFriends(friend)) return true
  }
  return false
}

// 批量筛选示例
const filteredList = originJsonList.filter(item => hasFavoriteNumberInFriends(item))

2. Python 实现

def has_favorite_number_in_friends(json_obj: dict) -> bool:
    friends = json_obj.get("friends", [])
    if not isinstance(friends, list):
        return False
    for friend in friends:
        if "favoriteNumber" in friend:
            return True
        # 递归检查深层friends,不需要深层校验可删除此行
        if has_favorite_number_in_friends(friend):
            return True
    return False

# 批量筛选示例
filtered_list = [item for item in origin_json_list if has_favorite_number_in_friends(item)]

3. MongoDB 查询实现(数据存储在MongoDB时直接查询)

仅检查第一层friends数组:

db.collection.find({
  "friends": {
    "$elemMatch": {
      "favoriteNumber": { "$exists": true }
    }
  }
})

检查所有层级嵌套的friends数组:

db.collection.find({
  "friends.$**.favoriteNumber": { "$exists": true }
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 18:27:04