国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
C# 后臺(tái)解析json,簡(jiǎn)單方法 字符串序列化為對(duì)象,取值

如果后臺(tái)是一個(gè)JSON的字符串格式如下:

string str = "{\"Success\":true,\"Msg\":\"成功!\"}";

我們之間轉(zhuǎn)成dynamic然后獲取里面某個(gè)屬性即可。

dynamic response = Newtonsoft.Json.JsonConvert.DeserializeObject(str);

string a = response.Success; string b = response.Msg;

還有兩種較為復(fù)雜的方法:

 Data data1 = JsonConvert.DeserializeObject<Data>(str);獲取就直接:data1.Success。

或者:List<Data> list = JsonConvert.DeserializeObject<List<Data>>(str);獲取需要循環(huán)獲?。篺oreach (var item in list)
            {
                 item.Success
            }

但是以上2個(gè)方法都需要聲明類

public class Data
    {
        public string Success { get; set; }
        public string Msg { get; set; }
    }

如果后臺(tái)穿過來是一個(gè)Json(new { success = response.Success, msg = response.Msg }, JsonRequestBehavior.AllowGet);格式;直接轉(zhuǎn)成dynamic 格式。獲?。?nbsp;resulOb.Data.success。

--------------題外話

其實(shí)也可以用這種方式直接傳給前臺(tái):

public JsonResult projectPush(){

Json(new { success = false, msg = "成功!" }, JsonRequestBehavior.AllowGet);

}

前臺(tái)獲取的時(shí)候直接:var result = Ext.decode(repsonse.responseText);result.success即可。當(dāng)然這個(gè)是基于EXT的。你可以返回之后調(diào)適一下其他框架下的。

--------------------------------------------------------------------------------------------------------     分割線    ------------------------------------------------------------------------------------------------------------------------------------------

Newtonsoft.Json在json和對(duì)象之間轉(zhuǎn)化是一個(gè)非常強(qiáng)大的工具。

對(duì)象轉(zhuǎn)化json字符串

Newtonsoft.Json.JsonConvert.SerializeObject()

json字符串轉(zhuǎn)化為指定對(duì)象

 Newtonsoft.Json.JsonConvert.DeserializeObject<>()

json字符串直接獲取指定元素值(類似XML)

var jObject=JObject.Parse(jsonstring);var time= jObject["time"].ToString();//獲取time{"time":"2016-06-06 11:11:11"}

 xml轉(zhuǎn)換json字符串

XmlDocument doc = new XmlDocument();  doc.LoadXml(PostBackXml);var jObject = Newtonsoft.Json.JsonConvert.SerializeXmlNode(doc);//Xml轉(zhuǎn)json

 當(dāng)上面的XML在序列化是通常會(huì)出現(xiàn)根目錄,根目錄內(nèi)出現(xiàn)的才是需要序列化的對(duì)象元素。

不妨先轉(zhuǎn)換為JObject,像下面這樣使用jobj["MongoTask"]轉(zhuǎn)換

 var json=JsonConvert.SerializeXmlNode(item); var jobj = JsonConvert.DeserializeObject<JObject>(json); tasklist.Add(jobj["MongoTask"].ToObject<MongoTask>());

 如果需要獲取XML中屬性的值,比如獲取<user name='張三'>獲取張三時(shí)name屬相帶有@符號(hào)

代碼中過濾到@符號(hào)就可以正常取值

var jobj = Newtonsoft.Json.JsonConvert.DeserializeObject<JObject>(jObject.Replace("@",""));var name= jobj["Response"]["Body"]["OrderResponse"]["name"];

小結(jié):

1:直接解析字符串
var jObject=JObject.Parse(jsonstring);var time= jObject["time"].ToString();//獲取time{"time":"2016-06-06 11:11:11"}

2:通過轉(zhuǎn)成dynamic然后獲取里面某個(gè)屬性即可。

dynamic response = Newtonsoft.Json.JsonConvert.DeserializeObject(str);

string a = response.Success; string b = response.Msg;

3:先構(gòu)造一個(gè)對(duì)象,再將json字符串轉(zhuǎn)型為對(duì)象,獲取它的屬性
================================================================================

1)使用JObject讀寫字符串:

JObject jo = JObject.Parse(jsonText);string[] values = jo.Properties().Select(item => item.Value.ToString()).ToArray();

(2)使用JsonSerializer讀寫對(duì)象(基于JsonWriter與JsonReader): 

數(shù)組型數(shù)據(jù)

string jsonArrayText1 = "[{'a':'a1','b':'b1'},{'a':'a2','b':'b2'}]";JArray ja = (JArray)JsonConvert.DeserializeObject(jsonArrayText1);string ja1a = ja[1]["a"].ToString();//或者JObject o = (JObject)ja[1];string oa = o["a"].ToString();

嵌套格式

string jsonText = "{\"beijing\":{\"zone\":\"海淀\",\"zone_en\":\"haidian\"}}";JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);string zone = jo["beijing"]["zone"].ToString();string zone_en = jo["beijing"]["zone_en"].ToString();
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
C# 操作JSON的幾種方式
asp.net的ajax以及json
【新提醒】【小賤學(xué)C#筆記之Newtonsoft.Json(三)】
【轉(zhuǎn)】在C#中使用Json.Net進(jìn)行序列化和反序列化及定制化
在unity中使用Newtonsoft.Json
JObject對(duì)象如何獲取深度屬性值&不判斷key是否存在獲取值&獲取含有特殊字符的key值
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服