前台与后端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>

 

posted on 2015-09-11 11:41  高达  阅读(144)  评论(0)    收藏  举报

导航