using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; using SpreadsProtos; namespace JsonOnProtoGenClass { class Program { static void Main(string[] args) { Request request = new Request() { ClientRequestId = "someID", Create = new Spread() { Parameters = new Parameters() { Instance = "someInstanceValue" } } }; string jsonConvertStr = JsonConvert.SerializeObject(request); Request requestJsonConvert = JsonConvert.DeserializeObject(jsonConvertStr); //At this point the value stored in instance property is lost Console.ReadLine(); } } }