コード例 #1
0
        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"];
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }