Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 2 của 2
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Parsing Json sử dụng Serialization như thế nào ?

    Mình vào vấn đề chính luôn. Mình có chuỗi Json như sau : Mình đoán là mình parse sai rồi, nhưng mình ko biết sửa như thế nào cả. Mong các bạn chỉ giáo!
    Mã:
    "results": [{
    		"geometry": {
    			"location": {
    				"lat": 10.86246,
    				"lng": 106.795017
    			}
    		},
    		"icon": "http://maps.gstatic.com/mapfiles/place_api/icons/generic_business-71.png",
    		"id": "e3385aa983fd87f151e67009cff4c1dbe7ef241d",
    		"name": "Bệnh Viện Máy Tính NET",
    		"opening_hours": {
    			"open_now": false
    		},
    		"reference": "CoQBfgAAAJF-QvlYsJcT-fUdg9vJq_0LbIRi4Pgcdkyxe48BO47S7sVQV50vXkAWfyzbvlLEHF0w_nVX66ycxdS-7RXGb12vpDoNjS4fhKk9WHoWREIWfJahwyEwO1aqLWVdOLoevfCmRl1-5Frs6Wn4tXE5raesa6pVKfR6Y7vU6lV8VEDkEhAa9EXqUrkSfXGNYiU8pxemGhS9IAWg1BtyB7Y5qrjDSmCzJX_82A",
    		"types": ["establishment"],
    		"vicinity": "Xa lộ Hà Nội"
    	}]
    Và class mình Parse sang chuỗi dùng Serialization :
    Mã:
      public class Places
        {
            [DataMember(Name = "geometry")]
            public string Geometry{get;set;}
            [DataMember(Name = "location")]
            public string Location { get; set; }
            [DataMember(Name = "lat")]
            public string Latitude { get; set; }
            [DataMember(Name = "lng")]
            public string Longitude { get; set; }
            [DataMember(Name = "icon")]
            public string Icon { get; set; }
            [DataMember(Name = "id")]
            public string Id { get; set; }
            [DataMember(Name = "name")]
            public string Name { get; set; }
            [DataMember(Name = "photo")]
            public string Photo { get; set; }
            [DataMember(Name = "rating")]
            public string Rating { get; set; }
            [DataMember(Name = "reference")]
            public string Reference { get; set; }
            [DataMember(Name = "types")]
            public string Types { get; set; }
            [DataMember(Name = "vicinity")]
            public string Vicinity { get; set; }
        }
        [DataContract]
        public class PlacesList
        {
            [DataMember(Name = "results")]
            public List<Places> PlaceList { get; set; }
        }
        public class PlaceToMap
        {
            public GeoCoordinate Coordinate { get; set; }
            public string Info { get; set; }
        }
    Và khi sử dụng như thế này thì Lat và Lng tất cả đều null. Mình đoán là mình parse sai rồi, nhưng mình ko biết sửa như thế nào cả. Mong các bạn chỉ giáo!
    Mã:
      private void updateMap(PlacesList googlePlaceApiRespone)
            {
                int totalRecords = googlePlaceApiRespone.PlaceList.Count();
                try
                {
                    ObservableCollection<PlaceToMap> placeToMapObjs = new ObservableCollection<PlaceToMap>();
                    for (int index = 0; index < totalRecords; index++)
                    {
                        placeToMapObjs.Add(new PlaceToMap()
                        {
                            Coordinate = new GeoCoordinate(Convert.ToDouble(googlePlaceApiRespone.PlaceList.ElementAt(index).Latitude),
                                            Convert.ToDouble(googlePlaceApiRespone.PlaceList.ElementAt(index).Longitude)),
                            Info = googlePlaceApiRespone.PlaceList.ElementAt(index).Name + Environment.NewLine + googlePlaceApiRespone.PlaceList.ElementAt(index).Vicinity
                        });
                    }
    
                    ObservableCollection<DependencyObject> children = MapExtensions.GetChildren(myMap);
                    var obj = children.FirstOrDefault(x => x.GetType() == typeof(MapItemsControl)) as MapItemsControl;
    
                    obj.ItemsSource = placeToMapObjs;
                    myMap.SetView(new GeoCoordinate(Convert.ToDouble(currentLatitude), Convert.ToDouble(currentLongitude)), 16);
                }
                catch (Exception)
                {
    
                }
            }

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    muôn parse thành công thì trước tiên là tạo các class phải đúng và chuổi Json phải ở trong { chuổi json }
    class của bạn tương tự như thế này.
    Mã:
    public class Location
    {
        public double lat { get; set; }
        public double lng { get; set; }
    }
    
    public class Geometry
    {
        public Location location { get; set; }
    }
    
    public class OpeningHours
    {
        public bool open_now { get; set; }
    }
    
    public class Result
    {
        public Geometry geometry { get; set; }
        public string icon { get; set; }
        public string id { get; set; }
        public string name { get; set; }
        public OpeningHours opening_hours { get; set; }
        public string reference { get; set; }
        public List<string> types { get; set; }
        public string vicinity { get; set; }
    }
    
    public class RootObject
    {
        public List<Result> results { get; set; }
    }

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •