Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }