在现代Web开发中,JSON(JavaScript Object Notation)已成为数据交换的常用格式。本文将通过一个简单的示例来展示如何在ASP.NETMVC3框架中使用JSON,以及如何利用MVC3内置的模型绑定功能简化数据处理。
首先,需要引入一个JSON解析库。在本例中,将使用由Douglas Crockford创建的Json2库。
在视图(View)中,添加以下代码:
<script src="../../Scripts/json2.js" type="text/javascript"></script>
<input type="button" onclick="javascript:JsonInAction()" value="Json"/>
<div id="JsonResponse"></div>
<script language="javascript" type="text/javascript">
var data = [{
"lastName": "Orue",
"firstName": "Esteban",
"phones": [{
"type": "Mobile",
"number": "(011) 4121-2121"
},
{
"type": "Home",
"number": "(011) 4123-4567"
}]
},
{
"firstName": "Alejandro",
"lastName": "Orue",
"phones": [{
"type": "Mobile",
"number": "(011) 4121-7777"
},
{
"type": "Home",
"number": "(011) 4121-9999"
}]
}];
function JsonInAction() {
$.ajax({
url: '/Home/CollectJsonData',
data: JSON.stringify(data),
type: 'POST',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function(result) {
var divInsert = document.getElementById("JsonResponse");
divInsert.innerHTML = result;
},
error: function() {
alert("error");
}
});
}
</script>
在控制器(Controller)中,定义一个名为CollectJsonData的Action方法,用于处理JSON数据。
public ActionResult CollectJsonData(List<Person> person)
{
return Json(data: person[0].firstName.ToString());
}
接下来,定义两个模型(Model)类,Person和Phone,用于表示JSON数据的结构。
public class Person
{
public string firstName { get; set; }
public string lastName { get; set; }
public List<Phone> phones { get; set; }
}
public class Phone
{
public string type { get; set; }
public string number { get; set; }
}