【发布时间】:2015-07-12 09:00:01
【问题描述】:
我在 Controller 中收到了 json 字符串,现在我想将该字符串映射到 C# 类对象 我该怎么做?
JSON:
[{"PdID":null,"StName":"435","DOB":"2015-05-02T17:09:35.974Z","Gender":"5435"},{"PdID": null,"StName":"4343","DOB":"2015-05-02T17:09:35.974Z","Gender":"4345"}]`
我的班级:
public class PersonDetail
{
public int PdID { get; set; }
public int PolicyPurchesID { get; set; }
public string StName { get; set; }
public DateTime DOB { get; set; }
public byte Gender { get; set; }
}
现在在我的控制器中我已经这样做了:-
public ActionResult PolicyDetailAdd(string jsn)
{
try
{
JavaScriptSerializer objJavascript = new JavaScriptSerializer();
PersonDetail testModels = (PersonDetail)objJavascript.DeserializeObject(jsn);
return null;
}
}
我在这方面遇到了异常:
无法将 System.Object[] 类型的对象转换为 WebApplication1.Models.PersonDetail 类型。
我怎样才能把这个字符串放到列表对象中?
【问题讨论】:
-
以一种非常简单的方式:json2csharp.com
-
但我不想要对象我想要具有值的类...可以使用这个 json2charp @PaoloCosta
-
网站给你类定义,而不是你必须编写代码来反序列化 json 字符串
-
我添加了反序列化到特定类的答案。
-
您可以将模型集合作为方法的参数,如果您发送正确的 json 对象,它将自动为您转换。没有理由您应该手动执行此操作。因此,只需将方法的签名更新为 public ActionResult PolicyDetailAdd(IEnumerable
data) 即可。
标签: c# json model-view-controller