首页 > 代码库 > Json解析实例

Json解析实例

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解析实例