亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

asp.net 2.0里也可以用JSON的使用方法

2024-07-10 13:26:05
字體:
來源:轉載
供稿:網友
全部代碼如下。 

復制代碼 代碼如下:


/// <summary>
/// JSON解析類
/// </summary>
public static class JSONConvert
{
#region 全局變量

private static JSONObject _json = new JSONObject();//寄存器
private static readonly string _SEMICOLON = "@semicolon";//分號轉義符
private static readonly string _COMMA = "@comma"; //逗號轉義符

#endregion

#region 字符串轉義
/// <summary>
/// 字符串轉義,將雙引號內的:和,分別轉成_SEMICOLON和_COMMA
/// </summary>
/// <param></param>
/// <returns></returns>
private static string StrEncode(string text)
{
MatchCollection matches = Regex.Matches(text, "http:///"[^///"]+///"");
foreach (Match match in matches)
{
text = text.Replace(match.Value, match.Value.Replace(":", _SEMICOLON).Replace(",", _COMMA));
}

return text;
}

/// <summary>
/// 字符串轉義,將_SEMICOLON和_COMMA分別轉成:和,
/// </summary>
/// <param></param>
/// <returns></returns>
private static string StrDecode(string text)
{
return text.Replace(_SEMICOLON, ":").Replace(_COMMA, ",");
}

#endregion

#region JSON最小單元解析

/// <summary>
/// 最小對象轉為JSONObject
/// </summary>
/// <param></param>
/// <returns></returns>
private static JSONObject DeserializeSingletonObject(string text)
{
JSONObject jsonObject = new JSONObject();

MatchCollection matches = Regex.Matches(text, "(///"(?<key>[^///"]+)///":///"(?<value>[^,///"]+)///")|(///"(?<key>[^///"]+)///":(?<value>[^,///"http://}]+))");
foreach (Match match in matches)
{
string value = match.Groups["value"].Value;
jsonObject.Add(match.Groups["key"].Value, _json.ContainsKey(value) ? _json[value] : StrDecode(value));
}

return jsonObject;
}

/// <summary>
/// 最小數組轉為JSONArray
/// </summary>
/// <param></param>
/// <returns></returns>
private static JSONArray DeserializeSingletonArray(string text)
{
JSONArray jsonArray = new JSONArray();

MatchCollection matches = Regex.Matches(text, "(///"(?<value>[^,///"]+)/")|(?<value>[^,//[//]]+)");
foreach (Match match in matches)
{
string value = match.Groups["value"].Value;
jsonArray.Add(_json.ContainsKey(value) ? _json[value] : StrDecode(value));
}

return jsonArray;
}

/// <summary>
/// 反序列化
/// </summary>
/// <param></param>
/// <returns></returns>
private static string Deserialize(string text)
{
text = StrEncode(text);//轉義;和,

int count = 0;
string key = string.Empty;
string pattern = "(//{[^//[//]//{//}]+//})|(//[[^//[//]//{//}]+//])";

while (Regex.IsMatch(text, pattern))
{
MatchCollection matches = Regex.Matches(text, pattern);
foreach (Match match in matches)
{
key = "___key" + count + "___";

if (match.Value.Substring(0, 1) == "{")
_json.Add(key, DeserializeSingletonObject(match.Value));
else
_json.Add(key, DeserializeSingletonArray(match.Value));

text = text.Replace(match.Value, key);

count++;
}
}
return text;
}

#endregion

#region 公共接口

/// <summary>
/// 序列化JSONObject對象
/// </summary>
/// <param></param>
/// <returns></returns>
public static JSONObject DeserializeObject(string text)
{
_json = new JSONObject();
return _json[Deserialize(text)] as JSONObject;
}

/// <summary>
/// 序列化JSONArray對象
/// </summary>
/// <param></param>
/// <returns></returns>
public static JSONArray DeserializeArray(string text)
{
_json = new JSONObject();
return _json[Deserialize(text)] as JSONArray;
}

/// <summary>
/// 反序列化JSONObject對象
/// </summary>
/// <param></param>
/// <returns></returns>
public static string SerializeObject(JSONObject jsonObject)
{
StringBuilder sb = new StringBuilder();
sb.Append("{");
foreach (KeyValuePair<string, object> kvp in jsonObject)
{
if (kvp.Value is JSONObject)
{
sb.Append(string.Format("/"{0}/":{1},", kvp.Key, SerializeObject((JSONObject)kvp.Value)));
}
else if (kvp.Value is JSONArray)
{
sb.Append(string.Format("/"{0}/":{1},", kvp.Key, SerializeArray((JSONArray)kvp.Value)));
}
else if (kvp.Value is String)
{
sb.Append(string.Format("/"{0}/":/"{1}/",", kvp.Key, kvp.Value));
}
else
{
sb.Append(string.Format("/"{0}/":/"{1}/",", kvp.Key, ""));
}
}
if (sb.Length > 1)
sb.Remove(sb.Length - 1, 1);
sb.Append("}");
return sb.ToString();
}

/// <summary>
/// 反序列化JSONArray對象
/// </summary>
/// <param></param>
/// <returns></returns>
public static string SerializeArray(JSONArray jsonArray)
{
StringBuilder sb = new StringBuilder();
sb.Append("[");
for (int i = 0; i < jsonArray.Count; i++)
{
if (jsonArray[i] is JSONObject)
{
sb.Append(string.Format("{0},", SerializeObject((JSONObject)jsonArray[i])));
}
else if (jsonArray[i] is JSONArray)
{
sb.Append(string.Format("{0},", SerializeArray((JSONArray)jsonArray[i])));
}
else if (jsonArray[i] is String)
{
sb.Append(string.Format("/"{0}/",", jsonArray[i]));
}
else
{
sb.Append(string.Format("/"{0}/",", ""));
}

}
if (sb.Length > 1)
sb.Remove(sb.Length - 1, 1);
sb.Append("]");
return sb.ToString();
}
#endregion
}

/// <summary>
/// 取出JSON對象類
/// </summary>
public class JSONObject : Dictionary<string, object>
{
public new void Add(string key, object value)
{
System.Type t = value.GetType();

if (t.Name == "String")
{
value = JsonEncode.StrEncodeForDeserialize(value.ToString());
}

base.Add(key, value);
}
}

/// <summary>
/// 取出JSON數組類
/// </summary>
public class JSONArray : List<object>
{
public new void Add(object item)
{
System.Type t = item.GetType();

if (t.Name == "String")
{
item = JsonEncode.StrEncodeForDeserialize(item.ToString());
}

base.Add(item);
}
}

/// <summary>
/// 字符串轉義,將"{"、"}"、"""
/// </summary>
public class JsonEncode
{
public static readonly string _LEFTBRACES = "@leftbraces";//"{"轉義符
public static readonly string _RIGHTBRACES = "@rightbraces";//"}"轉義符
public static readonly string _LEFTBRACKETS = "@leftbrackets";//"["轉義符
public static readonly string _RIGHTBRACKETS = "@rightbrackets";//"]"轉義符
public static readonly string _DOUBLEQUOTATIONMARKS = "@doubleQuotationMarks";//"""轉義符


#region 字符串轉義
/// <summary>
/// 字符串轉義,將"{"、"}"、""",分別轉換_LEFTBRACES、_RIGHTBRACES、_DOUBLEQUOTATIONMARKS
/// </summary>
/// <param></param>
/// <returns></returns>
public static string StrEncodeForDeserialize(string text)
{
return text
.Replace("{", _LEFTBRACES)
.Replace("}", _RIGHTBRACES)
.Replace("[", _LEFTBRACKETS)
.Replace("]", _RIGHTBRACKETS)
.Replace("/"", _DOUBLEQUOTATIONMARKS);
}

/// <summary>
/// 字符串轉義,將_LEFTBRACES、_RIGHTBRACES、_DOUBLEQUOTATIONMARKS,分別轉換"{"、"}"、"""
/// </summary>
/// <param></param>
/// <returns></returns>
public static string StrDecodeForDeserialize(string text)
{
return text.Replace(_LEFTBRACES, "{")
.Replace(_RIGHTBRACES, "}")
.Replace(_LEFTBRACKETS, "[")
.Replace(_RIGHTBRACKETS, "]")
.Replace(_DOUBLEQUOTATIONMARKS, "/"");
}
#endregion
}


 最后要說的,就是比較馬煩的是,現在要取JSON里的值要用到下面的方法

復制代碼 代碼如下:


this.Label2.Text = JsonEncode.StrDecodeForDeserialize(json["domain"].ToString());
this.Label2.Text = JsonEncode.StrDecodeForDeserialize(((JSONArray)json["years"])[4].ToString());

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产欧美日韩亚洲精品| 久久久久久久影院| 免费成人高清视频| 这里只有精品在线播放| 欧美精品在线免费播放| 亚洲精品女av网站| 亚洲永久免费观看| 日韩精品免费电影| 欧美国产日韩一区二区在线观看| 亚洲欧美精品在线| 国产999在线观看| 欧美黑人巨大xxx极品| 九九热精品视频在线播放| 欧美中文字幕精品| 国产视频精品xxxx| 欧美精品在线免费| 久久久人成影片一区二区三区| 亚洲免费av网址| 91av在线免费观看| 国产97在线|日韩| 日韩久久免费视频| 欧美视频中文字幕在线| 91成人国产在线观看| 欧美性开放视频| 欧美性猛交xxxx乱大交蜜桃| 欧美极度另类性三渗透| 国产精品综合久久久| 欧美在线一级va免费观看| 国产精品对白刺激| 成人免费直播live| 97在线视频观看| 国产精品嫩草影院久久久| 国产精品久久国产精品99gif| 超碰91人人草人人干| 久久伊人免费视频| 亚洲福利视频网站| 国产精品一区二区三区免费视频| 亚洲日本成人女熟在线观看| 亚洲 日韩 国产第一| 亚洲一级一级97网| 亚洲欧洲在线免费| 成人国产精品一区二区| 欧美另类69精品久久久久9999| 欧美成人免费观看| 欧美国产精品人人做人人爱| 国产精品高潮在线| 国内伊人久久久久久网站视频| 久久久999精品| 日韩电影中文字幕一区| 国产美女扒开尿口久久久| 91精品免费久久久久久久久| 欧美在线视频导航| 97久久久久久| 亚洲男人的天堂网站| 欧美亚洲激情在线| 欧美大荫蒂xxx| 国产精品国产福利国产秒拍| 日韩成人网免费视频| 久久视频在线观看免费| 欧美日韩国产成人在线| 成人在线视频福利| 国产一区二区久久精品| 欧美成人三级视频网站| 91沈先生作品| 欧美成人免费一级人片100| 日韩av在线直播| xxx欧美精品| 亚洲专区中文字幕| 欧美国产欧美亚洲国产日韩mv天天看完整| 亚洲国产精品小视频| 亚洲白拍色综合图区| 亚洲精品v欧美精品v日韩精品| 国产做受高潮69| 国产婷婷97碰碰久久人人蜜臀| 97在线看免费观看视频在线观看| 国产精品国产亚洲伊人久久| 亚洲高清福利视频| 日本成人黄色片| 国产成人久久久精品一区| 欧美激情2020午夜免费观看| 亚洲女在线观看| 欧美激情中文字幕在线| 色综合影院在线| 国产成人精品久久久| 国模精品系列视频| 欧美日韩免费观看中文| 欧洲亚洲免费在线| 国产日韩欧美自拍| 国产精品极品美女在线观看免费| 亚洲男人第一av网站| 黄色一区二区在线| 亚洲小视频在线| 国产91在线播放九色快色| 国产亚洲欧美另类中文| 欧美电影免费观看电视剧大全| 欧美第一页在线| 97色在线视频| 成人一区二区电影| 国产精品美女久久久久久免费| 日韩视频免费大全中文字幕| 国产欧美精品在线播放| 国产视频亚洲视频| 中文字幕日韩欧美在线视频| 免费91麻豆精品国产自产在线观看| 亚洲自拍偷拍色片视频| 亚洲专区国产精品| 欧美午夜激情在线| 日韩精品视频在线观看网址| 久久香蕉国产线看观看网| 国产精品美女999| 国产精品一区二区三区在线播放| 日韩高清av一区二区三区| 黑人巨大精品欧美一区二区三区| 九色精品免费永久在线| 亚洲精品一区av在线播放| 欧美大秀在线观看| 亚洲精品网站在线播放gif| 日本一区二区不卡| 韩国美女主播一区| 国模gogo一区二区大胆私拍| 久久韩国免费视频| 97免费视频在线播放| 欧美成人亚洲成人| 亚洲香蕉成人av网站在线观看| 欧美成人激情视频免费观看| 91精品视频在线免费观看| 精品国产欧美一区二区五十路| 亚洲精品一区二区三区不| 欧美国产高跟鞋裸体秀xxxhd| 欧美午夜视频一区二区| 欧美一区二区影院| 国产亚洲欧美日韩美女| 深夜福利91大全| 日韩精品在线免费观看| 91精品国产高清久久久久久久久| 久久久精品久久久| 九九视频这里只有精品| 伊人男人综合视频网| 久久国产视频网站| 91在线视频精品| 爽爽爽爽爽爽爽成人免费观看| 久久成人在线视频| 欧美xxxx14xxxxx性爽| 欧美日韩免费区域视频在线观看| 国产xxx69麻豆国语对白| 久久人人爽人人爽人人片av高清| 国产精品尤物福利片在线观看| 日韩精品高清视频| 在线观看视频99| 久久综合免费视频影院| 亚州成人av在线| 日韩综合视频在线观看| 日韩美女av在线| 欧美国产日产韩国视频| 久久亚洲私人国产精品va| 国产成人精品一区二区在线| 精品久久久91| 国产精品免费看久久久香蕉| 日韩av在线一区| 日韩亚洲成人av在线| 国产精品视频xxxx| 在线观看日韩欧美| 91视频免费网站| 日韩在线高清视频|