c# - 如何在c#中返回具有复杂结构的字符串数组
问题描述
对于遗留系统,我需要返回一个对象,而不是在其中包含一个键值而不是日期,并且内部有一个主体,知道如何完成工作吗?
我需要返回这个数组
{
"sellerId":"157747190185796800",
"data":
{
"2020-08-25":{ "sales":195000,"comission":25350},
"2020-08-26":{"sales":70500,"comission":9165},
"2020-08-27":{ "sales":51000,"comission":6630}
}
}
我正在尝试使用 json 结果并且它可以工作,但是键值日期存在问题
编辑:我正在尝试提出字典的建议,但是,我不知道在这种情况下我做错了什么。我也尝试作为一个对象,但不起作用。
var lst = new List<Dictionary<string, JsonResult>>();
foreach (var item in listToReturn)
{
lst.Add(new Dictionary(item.DateFromStr, new JsonResult (new
{
sales = item.sales,
comission = item.Comission,
})));
}
解决方案
我将使用匿名对象创建 JSON,使用 Dictionary 来存储销售数据,如下所示:
var resultToReturn = new
{
sellerId,
data = listToReturn.ToDictionary (
item => item.DateFromStr,
item => new
{
sales = item.Sales,
commission = item.Commission
}
)
};
然后您可以resultToReturn
使用您最喜欢的序列化程序进行序列化,或者如果您使用的是 MVC,请将其返回为JsonResult
.
演示小提琴:https ://dotnetfiddle.net/jZvoNo
注意:此解决方案假定所有日期值在列表中都是唯一的,否则ToDictionary
将引发异常。
推荐阅读
- asp.net - 构建中的用户机密为空
- kotlin - 房间数据库查询在 Kotlin 中应该是 null 安全的地方返回 null
- javascript - 在另一个画布图像上旋转图像
- apache-kafka - 更改 Kafka 同步副本
- mongodb - 统计按标签分组的文章 mongodb
- python - 使用多个工作人员同时计算多个任务 Dask
- javascript - 如何使 webpack 热模块替换与车把模板一起使用?
- python - 如何从已安装的 Google 驱动器运行脚本。问题是谷歌驱动器文件夹的名称中有一个空格
- node.js - Firebase使用通配符限制子节点扩展?
- android - 使用改造 Android 从 Json 字符串中删除“/”字符