我从javascript
调用JSON.stringify后获得了以下JSON{"parameters":"[{\"ParamName\":\"@s\",\"ParamValue\":\"12\"},{\"ParamName\":\"@t\",\"ParamValue\":\"21\"}]"}
如何将此映射到我的ASP.Net MVC2控制器中的以下模型
public class SCVM
{
public string content { get; set; }
public string type { get; set; }
public List<Parameters> parameters { get; set; }
public SCVM()
{
parameters = new List<Parameters>();
}
}
public class Parameters
{
public string ParamName { get; set; }
public string ParamValue { get; set; }
}
我试图用字典格式或列表对象来获取它,但发现很难以正确的方式解决它。
答案 0 :(得分:1)
如果你的json看起来像这样:它可能应该。 (见我对你问题的评论)
{
"parameters":[
{
"ParamName":"@s",
"ParamValue":"12"
},
{
"ParamName":"@t",
"ParamValue":"21"
}
]
}
使用这段javascript你将创建正确的json:
var parametersCollection = {
parameters: []
};
function QueryParameters(paramName, paramValue) { this.ParamName = paramName; this.ParamValue = paramValue; }
parametersCollection.parameters.push(new QueryParameters("@s", "12"));
parametersCollection.parameters.push(new QueryParameters("@t", "21"));
var json = JSON.stringify(parametersCollection);
你可以使用Json.NET see here进行反序列化,如下所示:
SCVM scvm = JsonConvert.DeserializeObject<SCVM>(json);
其中json是一个字符串,其json的格式与我显示的一样
Here是一个关于如何使用jquery将json数据发布到MVC2站点的优秀教程。您甚至不必使用Json.NET库来反序列化您的json。