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

如何判断JSON响应中嵌套的operations对象列表是否为空

C# 判断接口返回JSON中operations数组是否为空的实现方案

你的判断逻辑失效有两个核心原因:

  • ReadAsStringAsync()返回的是纯字符串格式的JSON内容,不是支持键索引的结构化JSON对象,直接对字符串使用["operations"]索引无法正确获取目标节点
  • 空数组[]是合法的数组类型值,不等于null,仅判断节点是否非空会把空数组误判为存在有效数据

以下是两种常用场景下的可行实现:

方案1:使用.NET内置System.Text.Json(.NET Core/.NET 5+ 无需额外安装依赖)

// 引入所需命名空间
using System.Text.Json;
using System.Text.Json.Nodes;

// 你原有的接口响应获取代码
var responseMessage1 = await request1.Content.ReadAsStringAsync();

// 解析并判断逻辑
var jsonRoot = JsonNode.Parse(responseMessage1);
var operationsArray = jsonRoot?["operations"] as JsonArray;

if (operationsArray != null && operationsArray.Count > 0)
{
    // operations数组存在且包含元素时,执行对应业务逻辑
}
else
{
    // operations不存在/为空数组时的处理逻辑
}

方案2:使用Newtonsoft.Json(Json.NET,适配.NET Framework等老项目)

// 引入所需命名空间
using Newtonsoft.Json.Linq;

// 你原有的接口响应获取代码
var responseMessage1 = await request1.Content.ReadAsStringAsync();

// 解析并判断逻辑
var jsonRoot = JObject.Parse(responseMessage1);
var operationsArray = jsonRoot["operations"] as JArray;

if (operationsArray != null && operationsArray.Count > 0)
{
    // operations数组存在且包含元素时,执行对应业务逻辑
}
else
{
    // operations不存在/为空数组时的处理逻辑
}

注意:如果项目中需要频繁处理接口返回的JSON结构,也可以直接定义对应结构的C#实体类,把JSON整体反序列化为实体对象后,直接判断实体类中Operations列表的Any()即可,代码可读性会更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 02:45:50