如何设计实体以将JSON字符串反序列化为C#Entity

时间:2017-10-11 16:40:20

标签: c# json

我想就如何设计这个复杂的实体提出一些建议,以便可以使用JsonConvert.DeserializeObject轻松地反序列化

JSON字符串如下所示:

while(reader.read(buf)!=1)

2 个答案:

答案 0 :(得分:1)

使用Visual Studio,如果您的JSON格式正确,您可以在内存中复制JSON,单击空cs文件,单击编辑 - >将JSON粘贴为类,然后直接获取类。

这对你有用。

Data here is starting class 
  - Holds a reference to StatusId class
  - Holds a reference to ProductTraded array

Every ProductTraded object 
  - Holds a reference to ProductMapDetail array

您可以创建对象并指定值。然后,使用JSON.net序列化以检查输出。如果输出匹配,它将被反序列化为Data类。

public class Data
{
    public string name { get; set; }
    public StatusId statusId { get; set; }
    public string tdMnemo { get; set; }
    public ProductTraded[] productsTradedOnDesks { get; set; }
}

public class StatusId
{
    public string mnemo { get; set; }
    public string label { get; set; }
}

public class ProductTraded
{
    public int secptdAssetClassId { get; set; }
    public string secptdAssetClassName { get; set; }
    public int secptdInstrumentId { get; set; }
    public string secptdInstrumentName { get; set; }
    public ProductMapDetail[] sectptdVlkMap { get; set; }
}

public class ProductMapDetail
{
    public int secpVlkmVlkId { get; set; }
    public string secpVlkmVlkLabel { get; set; }
}

答案 1 :(得分:0)

以下是我如何使c#模型将JSON反序列化为

  • 包含{...}之类的成员应使用类
  • 表示
  • 包含[ ... ]之类的成员应使用List<T>或其他IEnumberable
  • 表示
  • 包含"..."之类的成员应为原始值,例如stringint
  • 您的Json应该只有一个根成员。它可以是列表或对象。