public class Tool { /// /Donet2.0 need to add a reference // generate object information from a Json string public static String ObjectToJson ( Object obj) { return JsonConvert.ToString (obj); } // information from a target string generation Json public static Object JsonToObject ( String JSONString, Object obj) { return JsonConvert.DeserializeObject (JSONString, obj.GetType ()); } // String jsonText = "{\" Zone \ ": \" Haidian \ ", \" zone_en \ ": \" Haidian \ "}"; //Tool jo = (Tool)JsonConvert.DeserializeObject(jsonText); //string zone = jo["zone"].ToString(); //string zone_en = jo["zone_en"].ToString(); //var sr = JsonConvert.DeserializeAnonymousType<Resu>(jsonText, new Resu()); public byte[] StringToByte(string value) { return Encoding.UTF8.GetBytes(value); //return Text.Encoding.Default.GetBytes (value); } public string ByteToString(byte[] arr) { return Encoding.UTF8.GetString(arr); //return Text.Encoding.UTF8.GetString (arr, 0, arr.Length); } /// <summary> /// 字典转json字符串 /// </summary> /// <param name="myDic"></param> /// <returns></returns> public static string DictionaryToJson(Dictionary<string, string> myDic) { string jsonStr = JsonConvert.SerializeObject(myDic); return jsonStr; } /// <summary> /// json转字典 /// </summary> /// <param name="jsonStr"></param> /// <returns></returns> public static Dictionary<string, string> JsonToDictionary(string jsonStr) { Dictionary<string, string> dic = JsonConvert.DeserializeObject<Dictionary<string, string>>(jsonStr); return dic; } #region Parse///<summary>/// 参数解码///</summary>///<param name="data "> to be decoded byte array </param> /// <param name="length">从0位置开始解码的长度</param> /// <returns>解码结果</returns> public static Dictionary<string, string> ParamDecoding(byte[] data, int length) { string outs = Encoding.UTF8.GetString(data, 0, (int)length); Dictionary<string, string> pram = new Dictionary<string, string>(); string[] list = outs.Split("|".ToArray(), StringSplitOptions.RemoveEmptyEntries); foreach (string item in list) { string[] x = item.Split("=".ToArray(), StringSplitOptions.RemoveEmptyEntries); pram.Add(WidthDecoding(x[0]), WidthDecoding(x[1])); } return pram; } /// <summary> /// 参数编码 /// </summary> /// <param name="param">要编码的参数集合</param> /// <returns>编码的结果字节</returns> public static byte[] ParamEcoding(Dictionary<string, string> param) { StringBuilder bf = new StringBuilder(); foreach (string item in param.Keys) { bf.Append(WidthEcoding(item)); //bf.Append(item); bf.Append("="); bf.Append(WidthEcoding(param[item])); bf.Append("| " ); // bf.Append (List [Item]); } byte [] = outs Encoding.UTF8.GetBytes (bf.ToString ()); return outs; } /// <Summary> /// paragraph word decoding section /// </ Summary> /// <param name = "p_Value"> to be decoded wide character encoding: (eg \ u0efx \ u094f) </ param> /// <Returns> </ Returns> public static String WidthDecoding ( String p_Value) { // String _ReturnText = ""; StringBuilder _ReturnText = new StringBuilder(); string[] _ValueList = p_Value.Split(new char[] { '\\', 'u' }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i != _ValueList.Length; i++) { char _ValueChar = Convert.ToChar(Convert.ToUInt16(_ValueList)); _ReturnText.Append(_ValueChar.ToString()); } return _ReturnText.ToString(); } /// <summary> /// 宽字符编码 /// </summary> /// <param name="s">要编码的字符串</param> /// <returns>结果(如:\u0efx\u094f)</returns> public static string WidthEcoding(string s) { StringBuilder outs = new StringBuilder(); foreach (char item in s) { outs.Append(string.Format("}", (int)item)); } return outs.ToString(); } #endregion }
;