Json解析執行個體

來源:互聯網
上載者:User

標籤:

using System;using System.Collections.Generic;using System.Runtime.Serialization;using System.Windows.Controls;using System.Windows.Media;using ESRI.ArcGIS.Client;using ESRI.ArcGIS.Client.Geometry;using ESRI.ArcGIS.Client.Symbols;using System.Globalization;   namespace AddGraphics{     public partial class MainWindow : UserControl    {        private static ESRI.ArcGIS.Client.Projection.WebMercator mercator =            new ESRI.ArcGIS.Client.Projection.WebMercator();          public MainWindow()        {            // License setting and ArcGIS Runtime initialization is done in Application.xaml.cs.             InitializeComponent();             AddMarkerGraphics();            //AddPictureMarkerAndTextGraphics();            //AddLineGraphics();            //AddPolygonGraphics();         }         private void AddMarkerGraphics()        {            string jsonCoordinateString = "{\"Coordinates\":[{\"X\":13.1,\"Y\":55.59},{\"X\":72.83,\"Y\":18.97},{\"X\":55.43,\"Y\":34.3}]}";            CustomCoordinateList coordinateList = DeserializeJson<CustomCoordinateList>(jsonCoordinateString);             GraphicsLayer graphicsLayer = MyMap.Layers["MyGraphicsLayer"] as GraphicsLayer;             for (int i = 0; i < coordinateList.Coordinates.Count; i++)            {                Graphic graphic = new Graphic()                {                    Geometry = mercator.FromGeographic(new MapPoint(coordinateList.Coordinates[i].X, coordinateList.Coordinates[i].Y)),                    Symbol = i > 0 ? LayoutRoot.Resources["RedMarkerSymbol"] as Symbol : LayoutRoot.Resources["BlackMarkerSymbol"] as Symbol                };                graphicsLayer.Graphics.Add(graphic);            }           }         internal static T DeserializeJson<T>(string json)        {            T objectInstance = Activator.CreateInstance<T>();            System.IO.MemoryStream memoryStream = new System.IO.MemoryStream(System.Text.Encoding.Unicode.GetBytes(json));            System.Runtime.Serialization.Json.DataContractJsonSerializer jsonSerializer =                new System.Runtime.Serialization.Json.DataContractJsonSerializer(objectInstance.GetType());            objectInstance = (T)jsonSerializer.ReadObject(memoryStream);            memoryStream.Close();            return objectInstance;        }             [DataContract]        public class CustomCoordinateList        {            [DataMember]            public List<CustomCoordinate> Coordinates = new List<CustomCoordinate>();        }         [DataContract]        public class CustomCoordinate        {            public CustomCoordinate() { }            public CustomCoordinate(double x, double y)            {                this.X = x;                this.Y = y;            }             [DataMember]            public double X { get; set; }            [DataMember]            public double Y { get; set; }        }     }}

Json解析執行個體

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.