如果背景是一個JSON的字元串格式如下:
string str = "{\"Success\":true,\"Msg\":\"成功!\"}";
我們之間轉成dynamic然後擷取裡面某個屬性即可。
dynamic response = Newtonsoft.Json.JsonConvert.DeserializeObject(str);
string a = response.Success; string b = response.Msg;
如果是有對象格式的字元串可以這樣轉換:var response = JsonConvert.DeserializeObject<List<Dictionary<string, object>>>(str);
還有兩種較為複雜的方法:
Data data1 = JsonConvert.DeserializeObject<Data>(str);擷取就直接:data1.Success。
或者:List<Data> list = JsonConvert.DeserializeObject<List<Data>>(str);擷取需要循環擷取:foreach (var item in list)
{
item.Success
}
但是以上2個方法都需要聲明類
public class Data
{
public string Success { get; set; }
public string Msg { get; set; }
}
如果背景穿過來是一個Json(new { success = response.Success, msg = response.Msg }, JsonRequestBehavior.AllowGet);格式;直接轉成dynamic 格式。擷取: resulOb.Data.success。
--------------題外話
其實也可以用這種方式直接傳給前台:
public JsonResult projectPush(){
Json(new { success = false, msg = "成功!" }, JsonRequestBehavior.AllowGet);
}
前台擷取的時候直接:var result = Ext.decode(repsonse.responseText);result.success即可。當然這個是基于EXT的。你可以傳回之後調适一下其他架構下的。