DotNetのJSONプロローグと反プロローグ
JSON(JavaScript Object Notation)JavaScriptオブジェクト表示法は、テキストに基づいて、言語とは独立したライト級のデータ交換フォーマットです.現在の通信では、JSONデータフォーマットが多く、JSONは構造、オブジェクト、配列、JSONデータの表記形式が二つあります.
vsソリューションでは以前にxmlツリー形式でプロジェクトを組織する構造を採用していました.新しい.net coreでは、プロジェクトのソリューションはプロジェクトの構造説明としてjsonを採用しています.
インターネットのフロントバックグラウンドデータインタラクションでは、序文化対象をjsonとし、フロントエンドajaxは転送データを受け取り、逆順序化を対象として、ページでデータをレンダリングする.jsonに関する内容はこれ以上説明しません.インターネットでの序列化の種類は主にDataContractJson Serializer類を採用しています.
今はより一般的なjsonのプロローグと反プログレッシブの共通の方法を提供します.
1.jsonのプロローグ:
vsソリューションでは以前にxmlツリー形式でプロジェクトを組織する構造を採用していました.新しい.net coreでは、プロジェクトのソリューションはプロジェクトの構造説明としてjsonを採用しています.
インターネットのフロントバックグラウンドデータインタラクションでは、序文化対象をjsonとし、フロントエンドajaxは転送データを受け取り、逆順序化を対象として、ページでデータをレンダリングする.jsonに関する内容はこれ以上説明しません.インターネットでの序列化の種類は主にDataContractJson Serializer類を採用しています.
今はより一般的なjsonのプロローグと反プログレッシブの共通の方法を提供します.
1.jsonのプロローグ:
///
/// JSON
///
///
///
/// JSON
public static string JsonSerializer(T t)
{
if (t == null)
throw new ArgumentNullException("t");
string jsonString;
try
{
var ser = new DataContractJsonSerializer(typeof(T));
var ms = new MemoryStream();
ser.WriteObject(ms, t);
jsonString = Encoding.UTF8.GetString(ms.ToArray());
ms.Close();
// Json Date
const string p = @"\\/Date\((\d+)\+\d+\)\\/";
var matchEvaluator = new MatchEvaluator(ConvertJsonDateToDateString);
var reg = new System.Text.RegularExpressions.Regex(p);
jsonString = reg.Replace(jsonString, matchEvaluator);
}
catch (Exception er)
{
throw new Exception(er.Message);
}
return jsonString;
}
2.Jsonの反プロローグ: ///
/// JSON
///
public static T JsonDeserialize(string jsonString)
{
if (string.IsNullOrEmpty(jsonString))
throw new Exception(jsonString);
// "yyyy-MM-dd HH:mm:ss" "\/Date(1294499956278+0800)\/"
const string p = @"\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}";
try
{
var matchEvaluator = new MatchEvaluator(ConvertDateStringToJsonDate);
var reg = new System.Text.RegularExpressions.Regex(p);
jsonString = reg.Replace(jsonString, matchEvaluator);
var ser = new DataContractJsonSerializer(typeof(T));
var ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
var obj = (T)ser.ReadObject(ms);
return obj;
}
catch (Exception ex)
{
throw new Exception(ex.Message, ex);
}
}
以上は比較的簡単なjsonプロローグと反プログレッシブ方法です.