| 
           
            | 
  Windows Store App and JSON Parser (C#) การเขียน Apps เพื่อเชื่อมต่อแบบ Online สิ่งที่สำคัญที่สุดอย่างหนึ่งคือ การรับ-ส่งข้อมูล ที่มีประสิทธิภาพ มีมาตรฐานที่สามารถรองรับได้ในหลาย ๆ Platform ซึ่งวิธีที่นิยมอย่างมากในปัจจุบันเราคงจะไม่พูดถึง JSON ไม่ได้ ซึ่งเป็นรูปแบบที่ใช้เป็นมาตรฐานในการรับส่งข้อมูลที่ได้รับความนิยมมาก เพราะมีรูปแบบการใช้งานที่ง่าย มีลักษณะเป็นเหมือน ข้อความ (String) ที่ถูกเข้ารหัสไว้ จากนั้นก็สามารถส่งไปยังปลายทาง การสร้างและอ่านก็มี Class และ Function รองรับการทำงาน และใน .NET Framework ก็มีได้หลายวิธีเช่นเดียวกัน ซึ่งหลายคนอาจจะใช้แตกต่างกันไป แต่ในบทความนี้ผมจะแนะนำให้ใช้ Library ที่มีอยู่ใน .NET ที่สามารถเรียกใช้งานได้ง่าย เราจะใช้ NameSpace ของ System.Runtime.Serialization ซึ่งจะรองรับการทำงานบน .NET ได้หลายกหลาย Application 
    |  
        Windows Store App and JSON Parser (C#)       |  
 การเรียกใช้ Class
 
 using System.Xml.Linq;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Json;
using System.Collections.ObjectModel;
 สำหรับในบทความนี้จะยกตัวอย่างทั้งการ สร้าง (Encode) และการ อ่าน (Decode) ให้ดูพอเป็นตัวอย่างไว้สำหรับความเข้าใจ และการนำไปใช้งาน
 
 
 การสร้าง Create JSON (Serialize)
 
 1. การสร้าง JSON แบบข้อมูล Array ชุดเดียว
 
 
         public class myName
        {
            public string Name { get; set; }
            public string Surname { get; set; }
        }
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            List<myName> nameList = new List<myName>();
            myName name = new myName();
            name.Name = "Weerachai";
            name.Surname = "Nukitram";
            nameList.Add(name);
            MemoryStream str = new MemoryStream();
            DataContractJsonSerializer ser = new DataContractJsonSerializer(nameList.GetType());
            ser.WriteObject(str, nameList);
            str.Position = 0;
            StreamReader sr = new StreamReader(str);
            this.lblResult.Text = sr.ReadToEnd();
        }
Result
 
 
  
 
 
 2. การสร้าง JSON แบบข้อมูล Array มากกว่า 1 ชุด
 
 
         public class myName
        {
            public string Name { get; set; }
            public string Surname { get; set; }
        }
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            List<myName> nameList = new List<myName>();
            myName name = new myName();
            name.Name = "Weerachai";
            name.Surname = "Nukitram";
            nameList.Add(name);
            name = new myName();
            name.Name = "Adisorn";
            name.Surname = "Bunsong";
            nameList.Add(name);
            MemoryStream str = new MemoryStream();
            DataContractJsonSerializer ser = new DataContractJsonSerializer(nameList.GetType());
            ser.WriteObject(str, nameList);
            str.Position = 0;
            StreamReader sr = new StreamReader(str);
            this.lblResult.Text = sr.ReadToEnd();
        }
Result
 
 
  
 
 3. การอ่าน JSON แบบข้อมูล Array ชุดเดียว
 
 
 {"Name":"Weerachai","Surname":"Nukitram"} 
 
         public class myName
        {
            public string Name { get; set; }
            public string Surname { get; set; }
        }
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            string strJSON = string.Empty;
            // JSON = {"Name":"Weerachai","Surname":"Nukitram"}
            strJSON = " {\"Name\":\"Weerachai\",\"Surname\":\"Nukitram\"}";
            myName name = ReadToObject(strJSON);
            //name.Name.ToString();
            //name.Surname.ToString();
            this.lblResult.Text = "Name : " + name.Name.ToString();
            this.lblResult.Text = this.lblResult.Text + Environment.NewLine;
            this.lblResult.Text = this.lblResult.Text + "Surname : " + name.Surname.ToString();
        }
        public static myName ReadToObject(string json)
        {
            myName deserializedMember = new myName();
            MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json));
            DataContractJsonSerializer ser = new DataContractJsonSerializer(deserializedMember.GetType());
            deserializedMember = ser.ReadObject(ms) as myName;
            return deserializedMember;
        }
Result
 
 
  
 
 
 4. การอ่าน JSON แบบข้อมูล Array หลายชุด
 
 
 [{"Name":"Weerachai","Surname":"Nukitram"},{"Name":"Adisorn","Surname":"Bunsong"}] 
 
         public class myName
        {
            public string Name { get; set; }
            public string Surname { get; set; }
        }
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            string strJSON = null;
            // JSON = [{"Name":"Weerachai","Surname":"Nukitram"},{"Name":"Adisorn","Surname":"Bunsong"}]
            strJSON = " [{\"Name\":\"Weerachai\",\"Surname\":\"Nukitram\"}, {\"Name\":\"Adisorn\",\"Surname\":\"Bunsong\"}]";
            MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(strJSON));
            ObservableCollection<myName> list = new ObservableCollection<myName>();
            DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(ObservableCollection<myName>));
            list = (ObservableCollection<myName>)serializer.ReadObject(ms);
            this.lblResult.Text = string.Empty;
            foreach (myName name in list)
            {
                //name.Name.ToString();
                //name.Surname.ToString();
                this.lblResult.Text = this.lblResult.Text + "Name : " + name.Name.ToString();
                this.lblResult.Text = this.lblResult.Text + Environment.NewLine;
                this.lblResult.Text = this.lblResult.Text + "Surname : " + name.Surname.ToString();
                this.lblResult.Text = this.lblResult.Text + Environment.NewLine;
                this.lblResult.Text = this.lblResult.Text + "======================";
                this.lblResult.Text = this.lblResult.Text + Environment.NewLine;
            }         
           
        }
Result
 
 
  
 จากบทความนี้เราจะเห็นว่าการสร้าง และ อ่านค่า JSON นั้น เป็นเรื่องที่ง่ายมาก และ เราสามารถนำไปประยุกต์กับการรับส่งข้อมูลจาก Server กับ Windows Store Apps ได้หลากหลายมาก ซึ่งในบทความถัด ๆ ไปทางทีมงานจะยกตัวอย่างการรับส่งค่า JSON ในรูปแบบต่าง ๆ
 
 
 .
 
 
 
 
 |  
            | 
			 ช่วยกันสนับสนุนรักษาเว็บไซต์ความรู้แห่งนี้ไว้ด้วยการสนับสนุน Source Code 2.0 ของทีมงานไทยครีเอท 
 |  
 
 
 
          
            | 
                
                  |  |  
                  |  | By : | ThaiCreate.Com Team (บทความเป็นลิขสิทธิ์ของเว็บไทยครีเอทห้ามนำเผยแพร่ ณ เว็บไซต์อื่น ๆ) |  
                  |  | Score Rating : |    |  |  
                  |  | Create/Update Date : | 2014-05-27 09:51:24            /
            2017-03-19 15:05:25 |  
                  |  | Download : | No files |  |  
         
          | 
              
                | Sponsored Links / Related |  |  
          | 
 |  |   
          |  |  
 |   |