I use the latest version (6.0.6) of Json.net to serialize an object, and in my opinion, the result is not correct.
The result of the c# example below is this :
"Key":"AAA","No":"BBB","Project_No":"CCC","Resource_No":"DDD","Resource_Group_No":"EEE","Stadium_Code":"FFF","Entry_NoSpecified":false,"Line_NoSpecified":false,"Execution_DateSpecified":false,"HoursSpecified":false,"ExecutedSpecified":false,"FixedSpecified":false,"ConfirmedSpecified":false,"Begin_TimeSpecified":false,"Updated_TimeSpecified":false
As you can see, all non string properties are not serialized, eg Entry_No, Line_No, Hours and the dates
Is this a bug in Json.Net?
code to reproduce problem,
using System;
using Newtonsoft.Json;
namespace JSONNET
{
class Program
{
static void Main(string[] args)
{
var dto = new ProjectPlanningEntryDto()
{
Key = "AAA",
No = "BBB",
Entry_No = 123,
Project_No = "CCC",
Line_No = 456,
Resource_No = "DDD",
Resource_Group_No = "EEE",
Execution_Date = DateTime.Now,
Hours = 4,
Begin_Time = DateTime.Now,
Updated_Time = DateTime.Now,
Stadium_Code = "FFF"
};
var json = JsonConvert.SerializeObject(dto);
Console.WriteLine(json);
Console.ReadLine();
}
}
public class ProjectPlanningEntryDto
{
public string Key { get; set; }
public string No { get; set; }
public int Entry_No { get; set; }
public string Project_No { get; set; }
public int Line_No { get; set; }
public string Resource_No { get; set; }
public string Resource_Group_No { get; set; }
public DateTime Execution_Date { get; set; }
public decimal Hours { get; set; }
public bool Executed { get; set; }
public bool Fixed { get; set; }
public bool Confirmed { get; set; }
public DateTime Begin_Time { get; set; }
public DateTime Updated_Time { get; set; }
public string Stadium_Code { get; set; }
public bool Entry_NoSpecified { get; set; }
public bool Line_NoSpecified { get; set; }
public bool Execution_DateSpecified { get; set; }
public bool HoursSpecified { get; set; }
public bool ExecutedSpecified { get; set; }
public bool FixedSpecified { get; set; }
public bool ConfirmedSpecified { get; set; }
public bool Begin_TimeSpecified { get; set; }
public bool Updated_TimeSpecified { get; set; }
}
}