Skip to content

Commit

Permalink
Merge pull request #293 from MatthewSteeples/master
Browse files Browse the repository at this point in the history
Following on from #230, the same settings want to be used for deserializing
  • Loading branch information
sujitharamadass authored May 17, 2023
2 parents 674302e + 6e4d096 commit 5241a32
Showing 1 changed file with 17 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,21 @@ namespace Intuit.Ipp.Utility
/// </summary>
public class JsonObjectSerializer : IEntitySerializer
{
private static readonly JsonSerializerSettings _jsonSettings = new JsonSerializerSettings()
{
Converters =
{
new ObjectToEnumConverter(),
new IntuitConverter()
},
NullValueHandling = NullValueHandling.Ignore,
MissingMemberHandling = MissingMemberHandling.Error,
DateFormatHandling = DateFormatHandling.IsoDateFormat,
DateTimeZoneHandling = DateTimeZoneHandling.Utc,
DateFormatString = "yyyy-MM-ddTHH:mm:ssK",
MaxDepth = 256,
};

/// <summary>
/// Initializes a new instance of the <see cref="JsonObjectSerializer"/> class.
/// </summary>
Expand Down Expand Up @@ -65,20 +80,10 @@ public JsonObjectSerializer(ILogger idsLogger)
public string Serialize(object entity)
{
string data = string.Empty;
JsonSerializerSettings settings = new JsonSerializerSettings();
settings.Converters.Add(new ObjectToEnumConverter());
settings.Converters.Add(new IntuitConverter());

settings.NullValueHandling = NullValueHandling.Ignore;
settings.MissingMemberHandling = MissingMemberHandling.Error;
settings.DateFormatHandling = DateFormatHandling.IsoDateFormat;
settings.DateTimeZoneHandling = DateTimeZoneHandling.Utc;
settings.DateFormatString = "yyyy-MM-ddTHH:mm:ssK";
settings.MaxDepth = 256;

try
{
data = JsonConvert.SerializeObject(entity, settings);
data = JsonConvert.SerializeObject(entity, _jsonSettings);
}
catch (Exception ex)
{
Expand All @@ -103,21 +108,13 @@ public object Deserialize<T>(string message)
{
object deserializedObject = null;

// Initialize serialize for object
JsonSerializerSettings settings = new JsonSerializerSettings();
settings.Converters.Add(new ObjectToEnumConverter());
settings.Converters.Add(new IntuitConverter());

settings.NullValueHandling = NullValueHandling.Ignore;
settings.MissingMemberHandling = MissingMemberHandling.Ignore;

try
{
// de serialization of message.
/* JObject o = JObject.Parse(message);
string key = o.Properties().Select(p => p.Name).Single();
string entityString = o[key].ToString();*/
deserializedObject = JsonConvert.DeserializeObject<T>(message, settings);
deserializedObject = JsonConvert.DeserializeObject<T>(message, _jsonSettings);
}
catch (SystemException ex)
{
Expand Down

0 comments on commit 5241a32

Please sign in to comment.