C# 基礎,JOject JArray構造json對象

來源:互聯網
上載者:User

標籤:

前兩天要用到json對象,久了沒有用JObject.用法都已經忘了.後來搞半天才一知半解.暫時把一直半解給記錄下來,以免以後忘記,若能協助到其他人那也不錯

首先用到的兩個類.JObject 和JArray 需要引入庫:Newtonsoft.Json.dll 

我所用到的demo 是一個基本的MVC項目.

 

情況一:返回一個基本的json對象:

後台代碼:

        public JObject GetObj()        {            JObject obj =new JObject();            obj.Add("Name","Ray");            return obj;        }

通過chrome訪問會得到如下的結果:

 

情況二:生產環境肯定不會這麼簡單,肯定會有多個索引值對,我就是卡到這裡

    返回一個稍顯複雜的json字串:

後台代碼:

        public JObject GetObj()        {            JObject obj =new JObject();            obj.Add("Name","Ray");            obj.Add("Gender","Male");            return obj;        }

通過chrome訪問會得到如下的結果:

 

情況三:到這裡仍然不能滿足實際需求,也許我們需要子物件,比如增加一個連絡方式,連絡方式有電話和QQ

後台代碼:

        public JObject GetObj()        {            JObject obj =new JObject();            obj.Add("Name","Ray");            obj.Add("Gender","Male");            //增加一個連絡方式            JObject contact=new JObject();            contact.Add("Phone","151XXXXXXXX");            contact.Add("QQ","123456789");                      obj.Add("Contact",contact);            return obj;        }

通過chrome訪問會得到如下的結果:

 

實際上後來vs的強大的外掛程式resharper 提示我Jobject 定義的時候可以用更簡潔的方法:請參考這種定義方法,不要一個一個add了:

JObject tom = new JObject {{"Name", "Tom"}, {"Gender", "Male"}};

 

 

好了,到了這裡JObject的使用是不是已經會了呢.但是實際情況中,json對象中還會包括一些數組.這個時候我們就要用到JArray了.

情況一:最基本的JArray

           後台代碼:

        public JArray GetJArray()        {            JArray array=new JArray();            JObject tom = new JObject {{"Name", "Tom"}, {"Gender", "Male"}};            JObject jack=new JObject{{"Name","Ray"},{"Gender","Female"}};            array.Add(tom);            array.Add(jack);            return array;        }

通過chrome訪問會得到如下的結果:

 

情況二:實際情況下,這種文法是極少的,通常還是會出現嵌套情況,請看下面

         後台代碼:

        public JArray GetNestArray2()        {            //建立兩個JObject對象            JObject kevin = new JObject();            kevin.Add("name", "kevin");            kevin.Add("age", 18);            JObject jack = new JObject();            jack.Add("Name", "Jack");            jack.Add("age", 20);            //建立一JArray對象            JArray objj = new JArray();            objj.Add(kevin);            objj.Add(jack);            //建立最外層的JArray對象            JArray reArray=new JArray();            //用簡便的方法添加了一個JArray數組.參考上面new JObject的方法            reArray.Add(new JArray { new JObject { { "Name", "Lucy" }, { "age", 20 } }, new JObject { { "Name", "Lily" }, { "age", 20 } } });            //添加第一個JArray對象            reArray.Add(objj);            return reArray;        }
View Code

可以這樣理解,一個[]必然對應著一個JArray對象.

通過chrome訪問會得到如下的結果:

 

情況三:實際情況下JArray和JObject混用.請看下面的代碼:

         後台代碼:

        public JArray GetNestArray()        {            JObject kevin = new JObject{ { "name", "kevin" },{"age", 18}};            JObject jack = new JObject {{"Name", "Jack"}, {"age", 20}};            JObject obj4 = new JObject();            JArray childArray = new JArray {kevin, jack};            obj4.Add("array", childArray);            JArray objj = new JArray {kevin, jack, obj4};            return objj;        }
View Code

通過chrome訪問會得到如下的結果(實際上一個數組裡面儲存的應該是平級並且有相同格式的內容,該例子只作為示範用.生產環境考慮其他資料格式):

該方法返回的是JArray對象

 

情況四:返回的是一個Jobject對象,常見情況

    後台代碼(商務邏輯是擷取一個學生的資訊,包括學生的兩門課程分數):

        public JObject GetStudentInfo()        {            //建立一個JObject對象 增加兩個索引值對            JObject studentInfo=new JObject{{"name","Kevin"},{"gender","Male"}};            //建立一個JArray對象,可以理解成json對象中 value 位置的數組對象 ->  []            JArray courses = new JArray { new JObject { { "courseName", "Math" }, { "score", 88 } }, new JObject { { "courseName", "English" }, { "age", 95 } } };            studentInfo.Add("courses", courses);            return studentInfo;        }

通過chrome訪問會得到如下的結果:

好了 到這裡你已經可以應付一般情況的資料了.

完畢! ^_^

C# 基礎,JOject JArray構造json對象

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.