国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

C#的百度地圖開發(二)轉換JSON數據為相應的類

2019-11-17 02:20:20
字體:
來源:轉載
供稿:網友
C#的百度地圖開發(二)轉換JSON數據為相應的類

在《C#的百度地圖開發(一)發起HTTP請求》一文中我們向百度提供的API的URL發起請求,并得到了返回的結果,結果是一串JSON數據,我們先將這個JSON數據,使用在線工盯進行格式化。

[html]view plaincopy在CODE上查看代碼片{
  • "status":0,
  • "result":[
  • {
  • "x":39.926674689976,
  • "y":116.46594011987
  • },
  • {
  • "x":40.136798619397,
  • "y":117.10587935376
  • }
  • ]
  • }根據官方的說明,我們傳入幾個坐標,轉換后就會得到幾個坐標,并且是一樣的順序。為了能夠更多好的操作數據,我們需要將其轉換到相應的類中,所以首先要構造相應的類,然后將數據反序列化到該類中(這里要用到.net的json庫Newtonsoft.Json.dll,這個可以到網上自行下載)。[html]view%20plaincopy///<summary>
  • ///百度坐標的轉換結果
  • ///</summary>
  • [Serializable]
  • publicclassCoordTransResult
  • {
  • ///<summary>
  • ///狀態
  • ///</summary>
  • publicCoordTransStatusstatus{get;set;}
  • ///<summary>
  • ///結果(坐標數組)
  • ///</summary>
  • publicCoordinate[]result{get;set;}
  • }
  • publicenumCoordTransStatus
  • {
  • ///<summary>
  • ///正常
  • ///</summary>
  • OK=0,
  • ///<summary>
  • ///內部錯誤
  • ///</summary>
  • INTERNAL_ERROR=1,
  • ///<summary>
  • ///from非法
  • ///</summary>
  • FROM_ILLEGAL=21,
  • ///<summary>
  • ///to非法
  • ///</summary>
  • TO_ILLEGAL=22,
  • ///<summary>
  • ///coords格式非法
  • ///</summary>
  • COORDS_ILLEGAL=24,
  • ///<summary>
  • ///coords個數非法,超過限制
  • ///</summary>
  • COORDS_COUNT_ILLEGAL=25
  • }
  • ///<summary>
  • ///坐標
  • ///</summary>
  • [Serializable]
  • publicclassCoordinate
  • {
  • publicCoordinate()
  • {
  • }
  • publicCoordinate(Stringx,Stringy)
  • {
  • this.x=x;
  • this.y=y;
  • }
  • publicStringx{get;set;}
  • publicStringy{get;set;}
  • }這些是構造出的相關類。注:(1).返回的狀態值,使用枚舉類型,這樣更方便程序的編寫,也更容易閱讀。(2).返回的結果是一個坐標的數組,所以定義了一個Coordinate的數組。(3).類必須要在前面標注為可以序列化,即[Serializable]。(4).類里面的每一個屬性都對應JSON數據的一個KEY,屬性的名字一定要與JSON數據的KEY相同,并且使用同樣的大小寫。有了CoordTransResult的類,就可以通過.net的JSON工具類來反序列化了,請看下面的代碼[html]view%20plaincopy///<summary>///轉換成百度坐標///</summary>///<paramname="coordinates">坐標(經度,緯度),多個坐標間用分號隔開</param>///<paramname="mapCoordinateType">坐標類型</param>///<returns></returns>publicstaticCoordTransResultTransToBaiduCoord(Stringcoordinates,MapCoordinateTypemapCoordinateType=MapCoordinateType.GOOGLE_SOSO_ALIYUN_MAPABC_AMAP){StringtransformUrl=String.Format(TRANSFORM_COORDINATE_URL_TEMPLEATE,MAP_KEY_BAI_DU,coordinates,(int)mapCoordinateType,(int)MapCoordinateType.BAIDU);StringtransformResponsText=RequestHelper.RequestUrl(transformUrl,null);CoordTransResulttransformResult=null;Stringinfo="";try{transformResult=Newtonsoft.Json.JsonConvert.DeserializeObject<CoordTransResult>(transformResponsText);}catch(Exceptione){info="轉換坐標異常:"+e.Message;returnnull;}returntransformResult;}下面是測試代碼[html]view%20plaincopy
    發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 曲水县| 镇安县| 平潭县| 温宿县| 营山县| 南投市| 怀化市| 正定县| 石门县| 绵竹市| 石嘴山市| 铜陵市| 平阳县| 正蓝旗| 普陀区| 台中县| 辽阳市| 呼图壁县| 都江堰市| 廉江市| 阿拉善右旗| 桃园市| 将乐县| 松滋市| 辛集市| 永康市| 桐梓县| 黄大仙区| 岳西县| 和龙市| 新蔡县| 措勤县| 花莲县| 阿拉尔市| 无极县| 辰溪县| 乐都县| 开平市| 观塘区| 清流县| 荔波县|