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

如何使用LINQ从嵌套JSON数据中提取指定的fareAvailabilityKey值?

问题描述

嵌套JSON数据

var json = {
    "data": {
        "results": "abc",
        "faresAvailable": {
            "thamil-": {
                "totals": 1,
                "isSumOfSector": false,
                "fareAvailabilityKey": "MH5UM35_UVB_VDNPN1pCSVh_MTAwN35_MTl_MX5OQk9NTUFBMDE5MDAxMH5YITA-",
                "fares": "idk"
            },
            "rocky-": {
                "totals": 2,
                "isSumOfSector": false,
                "fareAvailabilityKey": "MH5UN35_UVB_VDdPN1pCSVh_MTAwN35_MTl_MX5OQk9NTUFBMDE5MDAxMH5YITE-",
                "fares": "idk too"
            }
        },
        "currencyCode": "INR",
        "includeTaxesAndFees": true,
        "bundleOffers": null
    }
};

尝试的LINQ查询

var A = from a in json[data]
        select new {
            fareAvailabilityKey = json["faresAvailable"].Values().Select(a => a["fareAvailabilityKey"].ToString())
        };

期望输出

fareAvailabilityKey    
MH5UM35_UVB_VDNPN1pCSVh_MTAwN35_MTl_MX5OQk9NTUFBMDE5MDAxMH5YITA-
MH5UN35_UVB_VDdPN1pCSVh_MTAwN35_MTl_MX5OQk9NTUFBMDE5MDAxMH5YITE-

修正后的查询及说明

错误分析

原查询存在两处核心问题:

  1. from a in json[data] 语法错误,且遍历 json["data"] 无意义,我们需要的是遍历 faresAvailable 下的子对象
  2. 原查询将所有 fareAvailabilityKey 打包成一个集合作为单个对象的属性,而非生成每个键对应的独立条目

修正代码(基于Newtonsoft.Json)

方式1:直接获取所有键的字符串列表

var fareKeys = json["data"]["faresAvailable"]
    .Values<JObject>()
    .Select(item => item["fareAvailabilityKey"].ToString())
    .ToList();

方式2:生成包含属性的匿名对象集合(匹配期望输出结构)

var result = json["data"]["faresAvailable"]
    .Values<JObject>()
    .Select(item => new {
        fareAvailabilityKey = item["fareAvailabilityKey"].ToString()
    });

说明

  • json["data"]["faresAvailable"] 定位到嵌套的 faresAvailable 对象
  • .Values<JObject>() 获取该对象下的所有子对象(即"thamil-"和"rocky-"对应的内容)
  • .Select(...) 从每个子对象中提取 fareAvailabilityKey 的字符串值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 07:38:15