当前位置: 首页 > 知识库问答 >
问题:

将JSON表示为C#类

柯冯浩
2023-03-14

我想将这个JSON反序列化为一个C#类,但我需要首先定义这个类:

{
"Prods": [
    {
        "ID": {
            "1001": [
                {
                    "Name": "Name1",
                    "Prod": "XXX"
                },
                {
                    "Name": "Name2",
                    "Prod": "XXXX"
                }
            ]
        }
    },
    {
        "ID": {
            "2001": [
                {
                    "Name": "Name3",
                    "Prod": "XXX-000"
                },
                {
                    "Name": "Name4",
                    "Prod": "XXXX-1111"
                }
            ]
        }
    }
]
}

我想将它反序列化为如下所示,但不确定我的JSON结构是否适合它:

public class Prod
{
    int CATID;
    Dictionary<string, string> prods = new Dictionary<string, string>();
}

public class Prods
{
   public List<Prod> Products {get;set;}
}

我应该如何更改上面的JSON以适应下面的类,这样我就可以使用JsonConvert来反序列化它了?

谢了!

共有1个答案

桓修能
2023-03-14

在我看来,您的JSON只是看起来不对,因为您并不总是具有“一致”的名称/值对。首先,我将像下面这样定义我的JSON

{
  "Prods": 
    [{
      "ID": "1001",
      "Items": 
        [{
          "Name": "Name1",
          "Prod": "XXX"
        },
        {
          "Name": "Name2",
          "Prod": "XXXX"
        }]        
    },
    {
      "ID": "2001", 
      "Items": 
        [{
          "Name": "Name3",
          "Prod": "XXX-000"
        },
        {
          "Name": "Name4",
          "Prod": "XXXX-1111"
        }]        
    }]
}

然后我将使用以下类来处理数据

public class Item {
  public string Name { get; set;}
  public string Prod { get; set;}
}

public class Product {
  public string ID { get; set;}
  public List<Item> Items { get; set; }
}

public class Products {
  public List<Product> Prods { get; set; }
}

然后我会使用json.net之类的东西来处理序列化

 类似资料:
  • 问题内容: 有什么简单的方法可以生成这样的JSON吗?我发现了和,所以我可以递归地降级到目录中并构建一个python对象,但这听起来像是在重新发明轮子,也许有人知道这样的任务的工作代码? 问题答案: 我不认为这个任务是一个“轮子”(可以这么说)。但这可以通过您提到的工具轻松实现:

  • 问题内容: Json字符串: C#类: C#将json转换为电影的c#列表: 我的变量最终是一个计数为0的空列表。我是否缺少某些内容? 问题答案: 您的C#类映射与json结构不匹配。 解决方案:

  • 问题内容: 我想创建一个包含我的类的实例变量的JSON字符串。 例如, 会成为: 我研究了几个用于创建JSON的C ++库,它们似乎都异常复杂。我想要类似Javascript的东西。换句话说,只需将std :: map传递给它并接收一个字符串。该地图可能包含其他地图,向量,列表,字符串,数字和布尔值。 最好的方法是什么? 谢谢你的帮助。 编辑 我研究了以下内容: json spirit,jsonc

  • 问题内容: 我有一个想要表示为C#类的复杂JSON对象。我在名为“ Form”的父类上有一个良好的开端,但是如何代表不同类型的集合(请参见下面的“ elements”对象)? 这是JSON对象: 我开始的课程看起来像这样: 如何处理“ elements”属性以获得所需的JSON输出? 我正在WCF 4.0和web.config中的以下属性一起使用:automaticFormatSelectionE

  • 问题内容: 我想将json字符串转换为对象列表。请帮我。如果由来完成,那会更有帮助。 我试过了,但是没有用。我不想要该json的所有值。MatrixModel中提到的 这是一个对象 这是Json String 问题答案: 您可以使用json2csharp.com将json转换为对象模型 将您的JSON粘贴到Box中。 单击“生成”。 您将为您的对象模型获得C#代码 通过使用 NewtonJson*

  • 问题内容: 我正在尝试在此链接中使用示例 http://sharpdevpt.blogspot.com/2009/10/deserialize-json- on-c.html?showComment=1265045828773#c2497312518008004159 但是我的项目无法使用JavaScriptConvert.DeserializeObject进行编译,该示例说这是来自.net库,有