c# - 来自 web api 的自定义 Json 响应
问题描述
我正在开发 ASP .Net web api 项目,我们正在提供自定义对象的响应。当 api 在 fiddler 中公开时,JsonFormatter 将数据格式化为 json 对象。这是我们应用程序的框架。
数据对象
public class CustomData
{
public Records MRecord {get;set;}
public string ResponseCode {get;set;}
public string Status {get;set;}
}
public class Records
{
Public class FirstName {get;set;}
Public class LastName {get;set;}
}
回复
CustomData : {
MRecord : [
{
FirstName : "1stName",
LastName : "",
},
{
FirstName : "2Name",
LastName : "",
},
],
ResponseCode : "0",
Status: "Success"
}
预期的格式就像
CustomData : {
MRRecordList : {
MRecord :
{
FirstName : "1stName",
LastName : "",
},
MRecord :
{
FirstName : "2Name",
LastName : "",
}
},
ResponseCode : "0",
Status: "Success"
}
考虑到数组对象没有被 JsonFormatter 拆分并显示为单个实体。如果有任何解决方案可以实现这一点,请帮助我。
解决方案
以下是您需要的代码/模型:
void Main()
{
var c = new CustomData()
{
MRecordList = new List<UserQuery.Record>
{
new Record{FirstName="A",LastName="B"},
new Record{FirstName="C",LastName="D"}
},
ResponseCode = "0",
Status = ""
};
JsonConvert.SerializeObject(c).Dump();
}
public class CustomData
{
public List<Record> MRecordList { get; set; }
public string ResponseCode { get; set; }
public string Status { get; set; }
}
public class Record
{
public string FirstName { get;set;}
public string LastName { get;set;}
}
这将产生以下 Json:
{
"MRecordList": [{
"FirstName": "A",
"LastName": "B"
}, {
"FirstName": "C",
"LastName": "D"
}],
"ResponseCode": "0",
"Status": ""
}
如果您的要求是以下 Json:
{
"customData": {
"MRecordList": [{
"FirstName": "A",
"LastName": "B"
}, {
"FirstName": "C",
"LastName": "D"
}],
"ResponseCode": "0",
"Status": ""
}
}
然后对代码进行以下更改:
public class Test
{
public CustomData customData {get;set;}
}
Test t = new Test{customData = c};
Now serialize t
从上面的示例中可以清楚地记住 Json 中没有根标记
推荐阅读
- c - C中两个数字的LCM
- javascript - 如何在网络音频中循环 wav 一定次数?
- git - 推送时 Dokku 错误:预接收挂钩被拒绝
- tensorflow - 为什么 Tensorfow 使用内存优化器需要很长时间?
- ckan - 尽管被列为可用,但“粘贴颜色”在 ckan 2.8.3 中不起作用
- python - MySQL + Python:使用自增主键
- html - 为什么 BODY 不尊重 min-height: 100%?
- android - 如何在运行 android 的树莓派上配置 3.5 英寸触摸屏?
- reactjs - 在反应 mongo db 上发出发布请求时出错
- linux - 如何正确检测并用 sed 替换撇号 (')?