JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。javascript
首先,咱們來看一下一個C#的類變量數據是怎麼從後端C#走向前端Javascript的。前端
源碼以下:java
(C#對象 ==> json字符串)ajax
/// <summary>
/// Json字符轉換的配置對象,設置了基本Json配置的信息 /// </summary>
private static readonly JsonSerializerSettings Settings =
new JsonSerializerSettings { //忽略循環引用,若是設置爲Error,則遇到循環引用的時候報錯(建議設置爲Error,這樣更規範)
ReferenceLoopHandling = ReferenceLoopHandling.Ignore, //日期格式化,默認的格式也很差看
DateFormatString = "yyyy-MM-dd HH:mm:ss", //json中屬性開頭字母小寫的駝峯命名
ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver() }; //根據配置規則獲得json轉換類
private static JsonSerializer scriptSerializer = JsonSerializer.Create(Settings); /// <summary>
/// 將任意一個對象轉換爲json字符串的表示形式 /// </summary>
/// <param name="obj">要轉換成json字符串的對象</param>
/// <returns>轉換後的json字符串,失敗則返回null</returns>
public static string ConvertToJsonStr(object obj) { try { StringWriter stringWriter = new StringWriter(); scriptSerializer.Serialize(stringWriter, obj); return stringWriter.ToString(); } catch { return null; } }
(json字符串 ==> javascript對象)編程
var obj = JSON.parse('{"a": "Hello", "b": "World"}'); //結果是 {a: 'Hello', b: 'World'}
而後,再反過來看一下一個Javascript的變量數據又是怎麼一步步走向C#後端的。json
源碼以下:c#
(json字符串 ==> c#對象)後端
/// <summary> /// 將json字符串轉換成對象 /// </summary> /// <typeparam name="T">要轉換成的類型</typeparam> /// <param name="jsonStr">json字符串</param> /// <returns>成功轉換返回對象,不然返回null</returns> public static T JsonStrToObject<T>(string jsonStr) { try { JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer(); return javaScriptSerializer.Deserialize<T>(jsonStr); } catch { return default(T); } }
(javascript對象 ==> json字符串)瀏覽器
var json = JSON.stringify({a: 'Hello', b: 'World'}); //結果是 '{"a": "Hello", "b": "World"}'
補充: 服務器