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

将JSON数据加载到C#类:新手适配数据结构类创建难题

把你的JSON转成C#类的解决方案

嘿,刚上手JSON转C#类的时候犯懵太正常了!我来帮你把这个JSON结构拆解成对应的C#类,这样你就能直接用来存储和操作数据啦。

首先先把你的JSON示例贴出来方便对照:

{"FirstItem": {"id": 1, "type": "foo", "colours": ["blue", "black", "green"], "reviews": {"positive": ["The best", "unbelievable..."]}}}

我们可以按照JSON的层级结构来创建对应的C#类:

1. 最外层的根类

这个类包含FirstItem属性,对应JSON最顶层的键:

public class RootObject
{
    public Item FirstItem { get; set; }
}

2. FirstItem对应的类

这个类包含id、type、colours和reviews这些属性:

public class Item
{
    public int Id { get; set; }
    public string Type { get; set; }
    public List<string> Colours { get; set; }
    public Reviews Reviews { get; set; }
}

这里我把属性名改成了C#常用的帕斯卡命名法(首字母大写),如果需要严格对应JSON里的小写键,可以用特性标注——比如用System.Text.Json的话加[JsonPropertyName("id")],用Newtonsoft.Json的话加[JsonProperty("id")]就行。

3. Reviews对应的类

这个类包含positive属性,对应评论里的正面评价数组:

public class Reviews
{
    public List<string> Positive { get; set; }
}

怎么用这些类?

比如你要把JSON字符串反序列化成C#对象,用System.Text.Json(.NET Core/.NET 5+内置)的话可以这么写:

string json = "{\"FirstItem\": {\"id\": 1, \"type\": \"foo\", \"colours\": [\"blue\", \"black\", \"green\"], \"reviews\": {\"positive\": [\"The best\", \"unbelievable...\"]}}}";
RootObject result = JsonSerializer.Deserialize<RootObject>(json);

要是用Newtonsoft.Json(老项目常用),代码是这样的:

RootObject result = JsonConvert.DeserializeObject<RootObject>(json);

小贴士

  • 类和属性的名字可以根据你的业务场景修改,比如把RootObject改成ProductContainer,Item改成Product,这样更贴合实际用途。
  • 如果JSON里有可选的字段,可以把对应的属性设为可空类型(比如public int? Id { get; set; }),避免反序列化时出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:34:46