c# - 如何将我的对象属性名称作为节点名称返回
问题描述
我在返回 api 结果时被卡住了,我有一个像
public partial class Sample
{
[JsonProperty("classificator")]
public List<Classificator> Classificator { get; set; }
}
public partial class Classificator
{
[JsonProperty("Value")]
public string Value { get; set; }
[JsonProperty("Description")]
public string Description { get; set; }
}
假设GetJson方法从数据库中检索我们的数据,有 2 条记录,数据如下
-- 值 - 描述
1-A-安盛
2- B - BXA
response = GetJson(); // this method gets data from db
return Content(HttpStatusCode.OK, response);
当我返回这个时,就像
{
"classificator": [{
"Value": "A",
"Description": "AXA"
}, {
"Value": "B",
"Description": "BXA"
}
]
}
但我想看看,我想看到下面的结果;
{
"classificator": [{
"A": "AXA"
}, {
"B" : "BXA"
}
]
}
我想问你,也许有人知道一个好的做法或文档(教程)。
我通过使用 Dictionary < string, model >来解决它
但我需要返回一个巨大的嵌套字段,我无法为所有不同的节点实现这个解决方案。
解决方案
我通过使用Dictionary< string, object >解决了
我在一个对象值中放置了 2 个嵌套对象。就我而言,它看起来有些复杂,我重构并尝试通过可读的字典层次结构工作。
基本上对于这个例子,它如下所示,
Dictionary<string, object> fooDict = new Dictionary<string, object>();
fooDict.Add("A", "AXA"); // in my case I put 2 nested object to value field
fooDict.Add("B", "BXA");
var serializedObject = JsonConvert.SerializeObject(fooDict);
using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\xxx\result.txt", true))
{
file.WriteLine(serializedObject);
}
推荐阅读
- c# - 如何使用以下 RRULE 在 SQL 中计算结束日期
- java - 如何在 JAX-RS 端点中指定 Javax 验证器的顺序?
- visual-studio-code - 如何使用vscode查看和浏览rails中的函数列表?
- excel - 保存到谷歌驱动器时我的 vba 代码丢失了吗?
- azure-pipelines - 在 Azure DevOps 中对 DACPAC 进行版本控制的最佳方式是什么?
- mobx - 如何拥有非管理员用户未加载的单独管理存储?
- javascript - DevTools 无法在 javascript 中加载 SourceMap 错误
- verilog - 使用 Verilog 对 FSM 进行建模显示 X
- python - 在 python 中返回列表时语法无效
- java - findViewById 更改背景颜色 Android Studio