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

如何使用Json.NET将JSON数字列表转换为C# int[]数组?

解决Json.NET将JSON数字列表转换为C# int[]的问题

嘿,我来帮你搞定这个转换问题!你已经成功读取并解析了JSON,接下来用Json.NET实现转换其实很简单,这里有两种实用的方法:

方法一:使用强类型模型(推荐,适合结构化场景)

先创建一个和JSON结构对应的C#类,这样解析起来更清晰,也方便后续扩展:

public class CourseGrades
{
    public string Course { get; set; }
    public int[] Grades { get; set; }
}

然后直接反序列化为这个类的实例,就能直接拿到int数组了:

// 读取JSON文件内容
string json = File.ReadAllText(jfile);
// 反序列化为强类型对象
var courseData = JsonConvert.DeserializeObject<CourseGrades>(json);
// 获取int数组
int[] gradesArray = courseData.Grades;

// 验证结果(可选)
Console.WriteLine($"课程:{courseData.Course}");
Console.WriteLine("成绩数组:" + string.Join(", ", gradesArray));

方法二:直接从JObject转换(快速场景,无需创建类)

如果你不想额外定义类,可以直接从已经解析好的JObject里提取grades节点,再用ToObject<int[]>()方法完成转换:

string json = File.ReadAllText(jfile);
JObject data = JObject.Parse(json);
// 直接将JToken转换为int[]
int[] gradesArray = data["grades"].ToObject<int[]>();

// 验证结果
Console.WriteLine("成绩数组:" + string.Join(", ", gradesArray));

为什么之前的尝试可能失败?

大概率是没用到ToObject<T>()这个关键方法——Json.NET不会自动把JToken转换成数组类型,需要显式调用这个方法来完成类型转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:25:26