将JSON绑定到模型C#

时间:2014-04-11 03:41:30

标签: c# asp.net-mvc json model-binding

我对Web API有一个HttpPost请求,并将数据保存到我的数据库中。问题是JSON数据不是静态格式,如下所示:

{
"35":{
"FormId":"4",
"DateSubmitted":"2014-04-03 10:45:05",
"UserIp":"127.0.0.1",
"Username":"",
"UserId":"0",
"Lang":"en-GB",
"confirmed":"Yes"
},
"36":{
"FormId":"4",
"DateSubmitted":"2014-04-04 02:18:52",
"UserIp":"127.0.0.1",
"Username":"",
"UserId":"0",
"Lang":"en-GB",
"confirmed":"Yes"
}
}

35和36这里可以是任何数字,我不知道如何将它绑定到模型。 任何人都可以告诉我一个方法:(? 在此先感谢

1 个答案:

答案 0 :(得分:1)

这是一个快速示例,说明如何使用JSON.Net和动态关键字实现我认为您的目标。为简单起见,我删除了一些属性:

[HttpPost]
public void POST(string text)
{
    dynamic result = JsonConvert.DeserializeObject(text);
    foreach (var res in result)
    {
        var ele = new Test();
        ele.ArrayId = int.Parse(res.Name);
        dynamic value = res.Value;
        ele.FormId = int.Parse(value.FormId.Value);
        ele.Ip = value.UserIp.Value;
        //etc.
    }
}

和模型类一起使用:

public class Test
{
    public int ArrayId { get; set; }
    public int FormId { get; set; }
    public string Ip { get; set; }
}