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

C#中高效提取嵌套JSON中指定条件的interest属性值的方法

高效提取指定条件的interest值方案

可以直接利用Newtonsoft.Json(Json.NET)的JsonPath查询能力,一次性定位并提取所有符合条件的interest值,无需手动循环,底层由库优化实现,效率更高。

核心实现代码

JObject json = JObject.Parse(guestJsonResponse);
// 使用JsonPath直接筛选所有type为"SEARCH"的event对应的interest值
var interests = json.SelectTokens("$.sessions[*].events[?(@.type == 'SEARCH')].arbitraryData.interest")
                    .Select(token => token.ToString())
                    .ToList();

代码解释

  • JsonPath表达式解析:
    • $.sessions[*]:定位到根节点下的sessions数组的所有元素
    • .events[?(@.type == 'SEARCH')]:筛选每个session下events数组中type等于"SEARCH"的元素
    • .arbitraryData.interest:最终定位到目标interest字段
  • SelectTokens方法会返回所有匹配的JToken集合,再通过Select转换为字符串列表即可。

空值兼容处理(可选)

如果存在event没有arbitraryData或interest字段的情况,可以添加空值过滤:

var interests = json.SelectTokens("$.sessions[*].events[?(@.type == 'SEARCH')].arbitraryData.interest")
                    .Where(token => token != null)
                    .Select(token => token.ToString())
                    .ToList();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 11:42:02