[英]How can i change the json formate after request in c#?
我在PostMan中发送这样的Json格式
{
"number": 2106887,
"date": "09/10/2018",
"degree":"BE"
"Students": [
{
"Branch": "ABK015",
"Doc": "NCE",
"Description": "Testing",
"dni": "1016035232",
"Name": "ABCE",
"Gender": "M",
"Title": "Univercity",
"email": "abc@in.com",
},
{
"Branch": "ABK016",
"Doc": "NCE",
"Description": "Testing1",
"dni": "1016035233",
"Name": "ABCE",
"Gender": "M",
"Title": "Univercity",
"email": "abcd@in.com",
}
]
}
在控制器级别,我正在对所有字段进行验证。 验证后如何将上述json字符串转换为以下格式
{
"Students": [
{
"number": 2106887,
"date": "09/10/2018",
"degree":"BE"
"Branch": "ABK015",
"Doc": "NCE",
"Description": "Testing",
"dni": "1016035232",
"Name": "ABCE",
"Gender": "M",
"Title": "Univercity",
"email": "abc@in.com",
},
{
"number": 2106887,
"date": "09/10/2018",
"degree":"BE"
"Branch": "ABK016",
"Doc": "NCE",
"Description": "Testing1",
"dni": "1016035233",
"Name": "ABCE",
"Gender": "M",
"Title": "Univercity",
"email": "abcd@in.com",
}
]
}
和aftre转换,我想插入数据库。 如何转换c#? 请帮我。
以下代码是学生的课程:
public class Students
{
[Required]
public string Branch{ get; set; }
[Required]
public string Doc{ get; set; }
[Required]
public string Description{ get; set; }
[Required]
public string dni{ get; set; }
[Required]
public string Name{ get; set; }
[Required]
public string Gender{ get; set; }
[Required]
public string Title{ get; set; }
[Required]
public string email{ get; set; }
[Required]
public string degree{ get; set; }
[Required]
public string date{ get; set; }
[Required]
public string number{ get; set; }
}
我在这里反序列化
var requestBody = requestContent.Content.ReadAsStringAsync().Result;
JObject jxxx = JsonConvert.DeserializeObject<dynamic>(requestBody);
请参阅更新的代码
您可以使用DeserializeAnonymousType
方法。 首先创建一个template
对象
var template = new {number = "", date = "", degree = "", Students = new Students[0]};
现在反序列化为临时json对象:
var jsonObject = JsonConvert.DeserializeAnonymousType(input, template);
在此之后,您可以将信息从json标题复制到带有linq的Students
:
var students = jsonObject.Students.Select(s =>
{
s.number = jsonObject.number;
s.date = jsonObject.date;
s.degree = jsonObject.degree;
return s;
}).ToArray();
另请注意,您的输入JSON无效:它缺少逗号afetr degree
值。
演示就在这里
"Students": [
{
"number": 2106887,
"date": "09/10/2018",
"degree":"BE"
"Branch": "ABK015",
"Doc": "NCE",
"Description": "Testing",
"dni": "1016035232",
"Name": "ABCE",
"Gender": "M",
"Title": "Univercity",
"email": "abc@in.com",
},
{
"number": 2106887,
"date": "09/10/2018",
"degree":"BE"
"Branch": "ABK016",
"Doc": "NCE",
"Description": "Testing1",
"dni": "1016035233",
"Name": "ABCE",
"Gender": "M",
"Title": "Univercity",
"email": "abcd@in.com",
}
]
然后尝试这个
var students = JsonConvert.DeserializeObject<Students[]>(requestBody);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.