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

如何使用JObject提取数据?将cells值拆分至三个独立列表

提取JObject中Cells数据到独立列表的解决方案

基础遍历实现

确保已安装Newtonsoft.Json NuGet包,通过逐层遍历的方式提取数据:

using Newtonsoft.Json.Linq;
using System.Collections.Generic;

// 假设已将JSON字符串解析为JObject,命名为spreadsheetJObj
List<int> columnIds = new List<int>();
List<int> rowIds = new List<int>();
List<string> values = new List<string>();

// 遍历所有行
foreach (JToken row in spreadsheetJObj["rows"])
{
    // 遍历当前行的所有单元格
    foreach (JToken cell in row["cells"])
    {
        columnIds.Add((int)cell["columnId"]);
        rowIds.Add((int)cell["rowId"]);
        values.Add((string)cell["value"]);
    }
}

LINQ简洁实现

如果偏好更简洁的写法,可使用LINQ扁平化提取:

using Newtonsoft.Json.Linq;
using System.Collections.Generic;
using System.Linq;

// 提取columnId列表
var columnIds = spreadsheetJObj["rows"]
    .SelectMany(row => row["cells"])
    .Select(cell => (int)cell["columnId"])
    .ToList();

// 提取rowId列表
var rowIds = spreadsheetJObj["rows"]
    .SelectMany(row => row["cells"])
    .Select(cell => (int)cell["rowId"])
    .ToList();

// 提取value列表
var values = spreadsheetJObj["rows"]
    .SelectMany(row => row["cells"])
    .Select(cell => (string)cell["value"])
    .ToList();

空值处理(可选)

若JSON中存在字段为null的情况,可添加空值判断避免异常:

values.Add(cell["value"]?.ToString() ?? string.Empty);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 19:15:11