private void j12_button_Click(object sender, EventArgs e) { /*JSON字串反序列化為LEVCommObject_test2物件*/ LEVCommObject_test2 back = JsonConvert.DeserializeObject <LEVCommObject_test2>(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_test2: Dictionary<string, string>物件*/ JObject jobj = JObject.FromObject(back.ParameterImageDict); Dictionary <string, string> val = jobj.ToObject <Dictionary <string, string> >(); foreach (var s in val) { Json_Parse_textBox.AppendText("image dict =>" + s + Environment.NewLine); } /*轉換,原為LEVCommObject_test2: Dictionary<string, byte[]>物件*/ jobj = JObject.FromObject(back.ParameterImageBodyDict); Dictionary <string, byte[]> values = jobj.ToObject <Dictionary <string, byte[]> >(); byte[] body = new byte[] { 0 }; if (values.ContainsKey("image")) { body = jobj["image"].ToObject <byte[]>(); } //Begins the process of writing the byte array back to a file //string imageFile = Path.Combine(Environment.CurrentDirectory, "pic_test.png"); string imageFile = Path.Combine(Environment.CurrentDirectory, "small_test.jpg"); using (Stream file = File.OpenWrite(imageFile)) { file.Write(body, 0, body.Length); } }
private void b13_button_Click(object sender, EventArgs e) { //string imageFile = Path.Combine(Environment.CurrentDirectory, "pic.png"); string imageFile = Path.Combine(Environment.CurrentDirectory, "small.jpg"); //Read file to byte array FileStream stream = File.OpenRead(imageFile); byte[] fileBytes = new byte[stream.Length]; stream.Read(fileBytes, 0, fileBytes.Length); stream.Close(); Json_Org_textBox.Clear(); /*create 物件*/ LEVCommObject_test2 levobj = new LEVCommObject_test2(); levobj.ObjName = LEV_Comm_Obj_Type.LEV_B2C_App.ToString(); levobj.ObjType = LEV_Comm_Obj_Type.LEV_B2C_App; Dictionary <string, string> imageStr = new Dictionary <string, string>(); imageStr.Add("image", "image圖片測試"); levobj.ParameterImageDict = imageStr; Dictionary <string, byte[]> imageBody = new Dictionary <string, byte[]>(); imageBody.Add("image", fileBytes); levobj.ParameterImageBodyDict = imageBody; /*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)); Json_Org_textBox.AppendText(res + Environment.NewLine); }
private void j11_button_Click(object sender, EventArgs e) { //string imageFile = Path.Combine(Environment.CurrentDirectory, "pic.png"); string imageFile = Path.Combine(Environment.CurrentDirectory, "small.jpg"); //Read file to byte array FileStream stream = File.OpenRead(imageFile); byte[] fileBytes = new byte[stream.Length]; stream.Read(fileBytes, 0, fileBytes.Length); stream.Close(); Json_Org_textBox.Clear(); /*create 物件*/ LEVCommObject_test2 levobj = new LEVCommObject_test2(); levobj.ObjName = LEV_Comm_Obj_Type.LEV_B2C_App.ToString(); levobj.ObjType = LEV_Comm_Obj_Type.LEV_B2C_App; Dictionary <string, string> imageStr = new Dictionary <string, string>(); imageStr.Add("image", "image圖片測試"); levobj.ParameterImageDict = imageStr; Dictionary <string, byte[]> imageBody = new Dictionary <string, byte[]>(); imageBody.Add("image", fileBytes); levobj.ParameterImageBodyDict = imageBody; /*序列化物件*/ string jsonStr = JsonConvert.SerializeObject(levobj, Formatting.None); /*Formatting.Indented,這樣的字串輸出在瀏覽器上檢視的話有排版效果較易閱讀*/ //string jsonStr = JsonConvert.SerializeObject(levobj, Formatting.Indented); int len = jsonStr.Length; byte[] byteData = Encoding.UTF8.GetBytes(jsonStr); string s = Encoding.UTF8.GetString(byteData, 0, byteData.Length); Json_Org_textBox.AppendText(jsonStr + Environment.NewLine); }