首页 > 代码库 > 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解析实例
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。