using System.Collections.Generic;
using Newtonsoft.Json.Linq;
public static void Main()
var json = @"{""ids"":[{""id"":1},{""id"":2}]}";
var result = JsonConvert.DeserializeObject<Foo>(json);
Console.WriteLine("ids: " + string.Join(",", result.MyIds.Select(id => id.ToString())));
Console.WriteLine(JsonConvert.SerializeObject(result, Formatting.Indented));
[JsonConverter(typeof(CustomArrayConverter<int>), "id")]
public int[] MyIds { get; set; }
class CustomArrayConverter<T> : JsonConverter
string PropertyName { get; set; }
public CustomArrayConverter(string propertyName)
PropertyName = propertyName;
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
JArray array = new JArray(JArray.Load(reader).Select(jo => jo[PropertyName]));
return array.ToObject(objectType, serializer);
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
IEnumerable<T> items = (IEnumerable<T>)value;
JArray array = new JArray(items.Select(i => new JObject(new JProperty(PropertyName, JToken.FromObject(i, serializer)))));
public override bool CanConvert(Type objectType)