using Newtonsoft.Json.Linq;
using System.Collections.Generic;
public static void Main()
var AvailabilityMap = JsonConvert.DeserializeObject<Station[]>(json, new StationConverter());
Console.WriteLine(AvailabilityMap[0].NearbyStations[0]);
public class StationConverter : JsonConverter
public override void WriteJson(JsonWriter w, object v, JsonSerializer s)
throw new NotImplementedException("Unnecessary: CanWrite is false.");
public override object ReadJson(JsonReader r, Type t, object v, JsonSerializer s)
JObject jObject = JObject.Load(r);
var prop = jObject.Property("nearbyStations");
var wrapped = string.Format("[{0}]", prop.Value);
JArray jsonArray = JArray.Parse(wrapped);
var target = new Station();
s.Populate(jObject.CreateReader(), target);
public override bool CanWrite
public override bool CanConvert(Type objectType)
return objectType == typeof (Station);
private static string json = @"
""lon"": ""4.420650000000000000"",
""lat"": ""51.21782000000000000"",
""address"": ""Koningin Astridplein"",
""nearbyStations"": ""3,4,5,24"",
""name"": ""001- Centraal Station - Astrid""
""lon"": ""4.420650000000000000"",
""lat"": ""51.21782000000000000"",
""address"": ""Koningin Astridplein"",
""nearbyStations"": ""3,4,5,24"",
""name"": ""001- Centraal Station - Astrid""
public int[] NearbyStations