[英]C# Model/Entity class for Json Output
为下图创建 c# 模型/实体和 json 结构的正确/标准方法是什么?
C# Model class
public class UnAssignedRequest
{
public int Total { get; set; }
public string Subject { get; set; }
}
现有 Json Output
[
{
"Total": 0,
"Subject ": "Physics"
},
{
"Total": 0,
"Subject ": "Mathamatics"
},
{
"Total": 0,
"Subject ": "Chemistry"
},
{
"Total": 8,
"Subject ": null
}
]
这里 Total 键/值重复为 0,每个 Subject 属性根本不需要,我正在寻找一个 json 格式,其中包含主题和总计。 这将生成如下图所示的 output。
上面的 json 和 c# model 也可以生成下面的圆环图,但我相信键/值 - “总计”:0; 可以避免在每个主题键/值上,并通过只有一个键/值作为“总计”来使 json 位有效:856; 对于整个 json 数组,类似于下面的 Json。
所需 Json Output:
[
{
"Subject ": "Physics"
},
{
"Subject ": "Mathamatics"
},
{
"Subject ": "Chemistry"
},
{
"Total": 8,
}
]
那么,c# model class 需要如何实现所需的 Json Output?
感谢您分享您的知识
using System;
using System.Collections.Generic;
using System.Text.Json;
namespace JsonGenerator
{
class Item
{
public string Subject { get; set; }
public int? Total { get; set; }
}
class Program
{
static void Main(string[] args)
{
var items = new List<Item>
{
new Item
{
Subject = "Physics"
},
new Item
{
Subject = "Mathamatics"
},
new Item
{
Subject = "Chemistry"
},
new Item
{
Total = 8
},
};
var json = JsonSerializer.Serialize(items, new JsonSerializerOptions { IgnoreNullValues = true, WriteIndented = true });
Console.WriteLine(json);
}
}
}
诀窍在于启用IgnoreNullValues
选项和int?
声明,允许将值类型初始化为null
。
结果:
[
{
"Subject": "Physics"
},
{
"Subject": "Mathamatics"
},
{
"Subject": "Chemistry"
},
{
"Total": 8
}
]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.