將後臺數據(C#)轉換成JSON字符串傳到頁面轉換成json對象存儲在JS中

在加載頁面時,有時候需要將後臺數據傳到頁面並保存在js中,現在一般都是通過json來操作這些數據,下面通過一個簡單的例子講解一下怎樣實現這個過程。

本例在MVC  .NET上實現。

比如後臺有這樣一些數據:

public class 級別模型
        {
            public long id;
            public string name;
            public List<級別模型> 下級列表;

            public 級別模型()
            {
                this.下級列表 =new List<級別模型>();
            }
        }

        public static readonly List<級別模型> 級別列表 = new List<級別模型>
        {
            new 級別模型
            {
                id = 100,
                name = "司令部",
                單位列表 = new List<級別模型>
                {
                    new 級別模型
                    {
                        id=110,
                        name = "二級部",
                        單位列表 = new List<級別模型>
                        {
                            new 級別模型
                            {
                                id=111,
                                name="處",
                                單位列表 = new List<級別模型>()
                            }
                        }
                    },
                }
            }
        };
現在需要將級別列表的數據傳到頁面上   ,我們可以先在Controller的Action裏面這樣寫:

public ActionResult Register()
        {
//將數據獲取到  通過JsonConvert序列化  將C#對象轉換成json字符串</span>
            ViewData["jsonUser"] = JsonConvert.SerializeObject(級別列表);
            return View("Register");
        }


上一步我們將後臺數據序列化後通過ViewData傳到頁面,接下來就在頁面上接收並處理。


在頁面上js代碼中,操作如下:

<script type="text/javascript">
$(function(){
        var dataUser = "@ViewData["jsonUser"]";
        var reg = new RegExp("&quot;", "g"); //創建正則RegExp對象  
        var data = JSON.parse(dataUser.replace(reg, '"'));

    });
</script>
由於是MVC,可以通過Razor語法直接將ViewData傳來的數據賦值給js變量,然後進行處理。在Action進行JsonConvert序列化後傳到js中字符串中會有的雙引號會被解析成&quot;  ,因此需要替換一到,而且必須替換成雙引號,JSON.parse才能正確解析成json對象。

這樣就可以把數據傳到頁面上並保存成json數據了。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章