zoukankan      html  css  js  c++  java
  • 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; }
            }
     
        }
    }
    
  • 相关阅读:
    线上项目部署
    day26 面向对象 单例模式总结
    阿里云服务器,更换操作系统步骤总结
    后端for循环补充
    前端,css
    django-admin 仿写stark组件action,filter筛选过滤,search查询
    7.20晚作业
    用户和群组管理
    7.19 晚作业
    目录和文件管理
  • 原文地址:https://www.cnblogs.com/Robert-huge/p/5924288.html
Copyright © 2011-2022 走看看