private void J6_button_Click(object sender, EventArgs e) { JsonSerializerSettings _jsonSettings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All, TypeNameAssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Full }; /*JSON字串反序列化為Dictionary物件*/ Dictionary <string, Object> back_L1 = JsonConvert.DeserializeObject <Dictionary <string, Object> >(Json_Org_textBox.Text); foreach (string key in back_L1.Keys) { Json_Parse_textBox.AppendText(key + "=>" + back_L1[key] + Environment.NewLine); } JArray a = JArray.FromObject(back_L1["idsList3"]); List <string> list = new List <string>(); foreach (var item in a) { list.Add((string)item); } LEVCommObject_test1 back_L2 = JsonConvert.DeserializeObject <LEVCommObject_test1>(back_L1["idsList4"].ToString()); JObject jobj = JObject.FromObject(back_L1["idsList4"]); JToken ageToken = jobj["ObjName"]; }
private void J5_button_Click(object sender, EventArgs e) { Json_Org_textBox.Clear(); List <string> ids = new List <string>() { "4", "8", "15", "16", "23", "42" }; //string key = "score_update"; LEVCommObject_test1 levobj = new LEVCommObject_test1(); levobj.ObjName = LEV_Comm_Obj_Type.LEV_B2C_App.ToString(); levobj.ObjType = LEV_Comm_Obj_Type.LEV_B2C_App; Dictionary <string, Object> idsList = new Dictionary <string, Object>(); idsList.Add("idsList1", ids); idsList.Add("idsList2", ids); idsList.Add("idsList3", ids); idsList.Add("idsList4", levobj); //levobj.ParameterObjDict = idsList; //levobj.Obj = ids; /*序列化Dictionary物件*/ //string jsonStr = JsonConvert.SerializeObject(levobj, Formatting.None); string jsonStr = JsonConvert.SerializeObject(idsList, Formatting.None); /*Formatting.Indented,這樣的字串輸出在瀏覽器上檢視的話有排版效果較易閱讀*/ Json_Org_textBox.AppendText(jsonStr + Environment.NewLine); }
private void j10_button_Click(object sender, EventArgs e) { /*BSON字串反序列化為LEVCommObject_test1物件*/ var memoryStream = new MemoryStream(StringToBytes(Json_Org_textBox.Text)); BsonReader reader = new BsonReader(memoryStream); JsonSerializer serializer = new JsonSerializer(); LEVCommObject_test1 back = serializer.Deserialize <LEVCommObject_test1>(reader); //LEVCommObject_test1 back = JsonConvert.DeserializeObject<LEVCommObject_test1>(Json_Org_textBox.Text); Json_Parse_textBox.AppendText("back : ObjName = " + back.ObjName + Environment.NewLine); Json_Parse_textBox.AppendText("back : ObjType = " + back.ObjType + Environment.NewLine); /*轉換,原為LEVCommObject_test1: Dictionary<string, Object>物件*/ JObject jobj = JObject.FromObject(back.ParameterObjDict); Dictionary <string, object> values = jobj.ToObject <Dictionary <string, object> >(); foreach (var item in values) { Json_Parse_textBox.AppendText("dict =>" + item + Environment.NewLine); } if (values.ContainsKey("c:/idsList.2")) { Json_Parse_textBox.AppendText("dict content =>" + values["c:/idsList.2"] + Environment.NewLine); List <string> sList = jobj["c:/idsList.2"].ToObject <List <string> >(); foreach (string s in sList) { Json_Parse_textBox.AppendText("=>" + s + Environment.NewLine); } } /*轉換,原為LEVCommObject_test1: Dictionary<string, string>物件*/ jobj = JObject.FromObject(back.ParameterStrDict); Dictionary <string, string> val = jobj.ToObject <Dictionary <string, string> >(); foreach (var s in val) { Json_Parse_textBox.AppendText("dict =>" + s + Environment.NewLine); } /*轉換,原為LEVCommObject_test1: Object extendParameterOb物件, set 為LEVCommObject_test1 Type*/ jobj = JObject.FromObject(back.extendParameterObj); LEVCommObject_test1 levC_Obj = jobj.ToObject <LEVCommObject_test1>(); Json_Parse_textBox.AppendText("back child : ObjName = " + levC_Obj.ObjName + Environment.NewLine); Json_Parse_textBox.AppendText("back child: ObjType = " + levC_Obj.ObjType + Environment.NewLine); /*轉換,原為LEVCommObject_test1: Dictionary<string, string>物件*/ jobj = JObject.FromObject(levC_Obj.ParameterStrDict); Dictionary <string, string> levC_val = jobj.ToObject <Dictionary <string, string> >(); foreach (var s in levC_val) { Json_Parse_textBox.AppendText("dict =>" + s + Environment.NewLine); } }
private void j9_button_Click(object sender, EventArgs e) { Json_Org_textBox.Clear(); List <string> ids1 = new List <string>() { "14測試", "18", "215", "126", "223", "242" }; List <string> ids = new List <string>() { "4", "8", "15", "16", "23", "42" }; //string key = "score_update"; LEVCommObject_test1 levobj = new LEVCommObject_test1(); levobj.ObjName = LEV_Comm_Obj_Type.LEV_B2C_App.ToString(); levobj.ObjType = LEV_Comm_Obj_Type.LEV_B2C_App; Dictionary <string, Object> idsList = new Dictionary <string, Object>(); idsList.Add("c:/idsList.1", ids); idsList.Add("c:/idsList.2", ids1); idsList.Add("c:/idsList.3", ids); levobj.ParameterObjDict = idsList; Dictionary <string, string> idsStr = new Dictionary <string, string>(); idsStr.Add("idsStr1", "t1測試"); idsStr.Add("idsStr2", "t2測試"); idsStr.Add("idsStr3", "t3測試"); levobj.ParameterStrDict = idsStr; LEVCommObject_test1 levobj_c = new LEVCommObject_test1(); levobj_c.ObjName = LEV_Comm_Obj_Type.LEV_Charger_Check_App.ToString(); levobj_c.ObjType = LEV_Comm_Obj_Type.LEV_Charger_Check_App; levobj_c.ParameterStrDict = idsStr; levobj.extendParameterObj = levobj_c; /*Bson序列化物件*/ var memoryStream = new MemoryStream(); BsonWriter bsonWriter = new BsonWriter(memoryStream); JsonSerializer serializer = new JsonSerializer(); serializer.Serialize(bsonWriter, levobj); //var res = string.Format(BitConverter.ToString(memoryStream.ToArray())); byte[] bsonData = memoryStream.ToArray(); var res = string.Format(BitConverter.ToString(bsonData)); //var res = BitConverter.ToString(bsonData); Json_Org_textBox.AppendText(res + Environment.NewLine); }
private void j7_button_Click(object sender, EventArgs e) { Json_Org_textBox.Clear(); List <string> ids1 = new List <string>() { "14測試", "18", "215", "126", "223", "242" }; List <string> ids = new List <string>() { "4", "8", "15", "16", "23", "42" }; //string key = "score_update"; LEVCommObject_test1 levobj = new LEVCommObject_test1(); levobj.ObjName = LEV_Comm_Obj_Type.LEV_B2C_App.ToString(); levobj.ObjType = LEV_Comm_Obj_Type.LEV_B2C_App; Dictionary <string, Object> idsList = new Dictionary <string, Object>(); idsList.Add("c:/idsList.1", ids); idsList.Add("c:/idsList.2", ids1); idsList.Add("c:/idsList.3", ids); levobj.ParameterObjDict = idsList; Dictionary <string, string> idsStr = new Dictionary <string, string>(); idsStr.Add("idsStr1", "t1測試"); idsStr.Add("idsStr2", "t2測試"); idsStr.Add("idsStr3", "t3測試"); levobj.ParameterStrDict = idsStr; LEVCommObject_test1 levobj_c = new LEVCommObject_test1(); levobj_c.ObjName = LEV_Comm_Obj_Type.LEV_Charger_Check_App.ToString(); levobj_c.ObjType = LEV_Comm_Obj_Type.LEV_Charger_Check_App; levobj_c.ParameterStrDict = idsStr; levobj.extendParameterObj = levobj_c; /*序列化物件*/ string jsonStr = JsonConvert.SerializeObject(levobj, Formatting.None); int len = jsonStr.Length; byte[] byteData = Encoding.UTF8.GetBytes(jsonStr); string s = Encoding.UTF8.GetString(byteData, 0, byteData.Length); //string jsonStr = JsonConvert.SerializeObject(levobj, Formatting.Indented); /*Formatting.Indented,這樣的字串輸出在瀏覽器上檢視的話有排版效果較易閱讀*/ Json_Org_textBox.AppendText(jsonStr + Environment.NewLine); }