.NET Fiddle

CSharp · Console

/Program.cs

using System;
using Newtonsoft.Json;

public class Program
{
	public static void Main()
	{
		Console.WriteLine("Hello World");
		var json = @"{""B"":42.0}";
		var p2 = JsonConvert.DeserializeObject<A>(json, new CustomIntConverter());		
		p2.Dump();
		
		json =  @"{""B"":42}";
		p2 = JsonConvert.DeserializeObject<A>(json, new CustomIntConverter());		
		p2.Dump();
	}
}

public class A{
	public int B {get;set;}
}

public class CustomIntConverter : JsonConverter<int>
{
	public override void WriteJson(JsonWriter writer, int value, JsonSerializer serializer)
	{
		writer.WriteValue(value.ToString());
	}

	public override int ReadJson(JsonReader reader, Type objectType, int existingValue, bool hasExistingValue, JsonSerializer serializer)
	{
		int i = Convert.ToInt32(reader.Value);
		
		return i;
	}
}
;