前台与后端MVC JSON应用
using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace ActionLine.Controllers { public class AjaxController : Controller { // // GET: /Ajax/ public ActionResult Index() { return View(); } public JsonResult Ajax01() { Person person = new Person() { Age = 45, Name = "WISE", Sex = true }; return Json(person, JsonRequestBehavior.AllowGet); } public JsonResult Ajax02() { Person person = new Person() { Age = 45, Name = "WISE", Sex = true }; return Json(new { person = person }, JsonRequestBehavior.AllowGet); } public JsonResult Ajax03() { Person person = new Person() { Age = 45, Name = "WISE", Sex = true }; string json = JsonConvert.SerializeObject(person); Response.Write(json); Response.End(); return Json(null); } public ActionResult JsonParse() { Person person = new Person() { Age = 45, Name = "WISE", Sex = true }; Person person2 = new Person() { Age = 45, Name = "W\nISE", Sex = true }; string jsonTrue = JsonConvert.SerializeObject(person); string jsonFalse = JsonConvert.SerializeObject(person2); ViewBag.JsonTrue = jsonTrue; ViewBag.JsonFalse = jsonFalse; return View(); } } public class Person { public string Name { get; set; } public int Age { get; set; } public bool Sex { get; set; } } }
前台
@{ ViewBag.Title = "JsonParse"; } <html> <script src="~/Scripts/jquery-1.7.1.min.js"></script> <body></body> </html> <script type="text/javascript"> var josnDom =@Html.Raw(ViewBag.JsonTrue);//生成对象直接可以调用 var josnDom ={"Name":"WISE","Age":45,"Sex":true}; var jsonTrue = '@Html.Raw(ViewBag.JsonTrue)';//正确格式: var jsonTrue = '{"Name":"WISE","Age":45,"Sex":true}'; var jsonFalse = '@Html.Raw(ViewBag.JsonFalse)'; //原因:JSON.parse();因为JSPN.Parse()在对字符串进行转换对象前先会字符串进行检测是否符合转换格式,因为其不能转换成,因此会报错 //var jsonFalse = '{"Name":"W\"ISE","Age":45,"Sex":true}'; 错误点:"W\"ISE" //var jsonFalse = '{"Name":"W\nISE","Age":45,"Sex":true}' 错误点:"W\nISE" $(function () { alert(josnDom.Age); var jsonTrue_da=JSON.parse(jsonTrue); alert(jsonTrue_da.Age); var jsonFalse_da=JSON.parse(jsonFalse);//报错 Uncaught SyntaxError: Unexpected token alert(jsonFalse_da.Age); }) </script>
浙公网安备 33010602011771号