我已經返回的Json如下所示:解析多維JSON陣列與Newtonsoft Json.NET
[{ 「CreatedBy」: 「GIS_DB」, 「CreatedDate」:「2012/3/8 10點44:AM「,」Id「:39,」ModifiedBy「:」「ModifiedDate」:「」,「Name」:「CF-39」,「StatusId」:1,「TrailCoordinates」:[{「CreatedBy」 :「GIS_DB」,「CreatedDate」:「3/8/2012 10:44:00 AM」,「Id」:1637,「Latitude」:32.76004207,「Longitude」: - 97.34006853,「ModifiedBy」:「 ,「ModifiedDate」:「」,「SortOrder」:1,「TrailId」:39},{「CreatedBy」:「GIS_DB」,「CreatedDate」:「3/8/2012 10:44:00 AM」, 「ID」:1638, 「縱橫」:32.76004333, 「經度」: - 97.34012121, 「ModifiedBy」: 「」,「修改日期「:」「,」SortOrder「:2,」TrailId「:39}]},{」CreatedBy「:」GIS_DB「,」CreatedDate「:」3/8/2012 10:44:00 AM「 「ID」:40 「ModifiedBy」: 「」, 「ModifiedDate」: 「」, 「名稱」: 「CF-40」, 「StatusId」:1, 「TrailCoordinates」:[{ 「CreatedBy」: 「GIS_DB」, 「CreatedDate」:「3/8/2012 10:44:00 AM」,「Id」:3755,「Latitude」:32.76034332,「Longitude」: - 97.3402069,「ModifiedBy」:「」,ModifiedDate「: 「」,「SortOrder」:1,「TrailId」:40},{「CreatedBy」:「GIS_DB」,「CreatedDate」:「3/8/2012 10:44:00 AM」,「Id」:3756 「緯度」:32.76019181, 「經度」: - 97.3402448, 「ModifiedBy」: 「」, 「ModifiedDate」: 「」, 「SortOrder的」:2 「TrailId」:40}]}]
這些我的課是...
public class Trails
{
[MonoTouch.Foundation.Preserve]
public Trails(){ TrailCoord = new List<trailcoords>();}
[MonoTouch.Foundation.Preserve, JsonProperty("Name")]
public string TrailName { get; set; }
[MonoTouch.Foundation.Preserve, JsonProperty("StatusId")]
public int StatusId { get; set; }
[MonoTouch.Foundation.Preserve, JsonProperty("TrailCoordinates")]
public List<trailcoords> TrailCoord { get; set; }
// public trailcoords
public Trails (string trailname, int statusid, List<trailcoords> trailcoord)
{
TrailName = trailname;
StatusId = statusid;
TrailCoord = trailcoord;
}
}
public class trailcoords
{
[MonoTouch.Foundation.Preserve]
public trailcoords(){}
[MonoTouch.Foundation.Preserve, JsonProperty("TrailId")]
public string TrailId { get; set; }
[MonoTouch.Foundation.Preserve, JsonProperty("Latitude")]
public double Latitude { get; set; }
[MonoTouch.Foundation.Preserve, JsonProperty("Longitude")]
public double Longitude { get; set; }
public trailcoords (string trailid, double latitude, double longitude)
{
TrailId = trailid;
Latitude = latitude;
Longitude = longitude;
}
}
List<Trails> Posts = JsonConvert.DeserializeObject<List<Trails>> (json);
所以從這裏我不知道我將如何訪問我的列表中的緯度和經度項目。我可以訪問像TrailName這樣的東西沒有問題,但不知道我在做什麼錯誤的數組內的項目。我想補充他們,這樣我可以繪製它們作爲一個結構線與此類似,我把(硬編碼值):
CLLocationCoordinate2D[] tmpTrail1 = new CLLocationCoordinate2D[]{
new CLLocationCoordinate2D(32.751531, -97.361755),
new CLLocationCoordinate2D(32.751451, -97.356625),
new CLLocationCoordinate2D(32.751500, -97.332077),
};
CLLocationCoordinate2D[] tmpTrail2 = new CLLocationCoordinate2D[] {
new CLLocationCoordinate2D(32.727353, -97.361139),
new CLLocationCoordinate2D(32.747731, -97.359896),
new CLLocationCoordinate2D(32.765735, -97.360360),
};
_trailOverlayPoints = new List<CLLocationCoordinate2D[]>();
_trailOverlayPoints.Add(tmpTrail1);
_trailOverlayPoints.Add(tmpTrail2);
謝謝你太棒了!使用Linq將能夠放入一個「where」子句,以便它只返回特定線索的座標? – k1komans 2012-04-02 13:16:56
@ user1288686爲什麼不呢?我更新了答案。 – 2012-04-02 16:18:51
很好的答案。謝謝 – 2015-03-04 23:41:21