Reputation: 3746
I am trying to write a method which will accept a JSON string and Type. The aim of the method is to deserialize the string in the object specified by the type. I want the code to look like something below
public dynamic Deserialize(string serializedStr, Type type) {
return JsonConvert.Deserialize<type>(serializedStr);
}
Is it possible do such an operation using Newtonsoft.JSon?
Upvotes: 0
Views: 99
Reputation: 22485
here's a little example of a helper extension method static class to serve both sides (needs scoping etc if going into prod):
public static class JsonHelpers
{
public static T DeserializeObject<T>(this string jsonString)
{
try
{
var concreteObject = Newtonsoft.Json.JsonConvert.DeserializeObject<T>(jsonString);
return concreteObject;
}
catch
{
return default(T);
}
}
public static string SerializeObject<T>(this T concreteObject)
{
try
{
var jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(concreteObject);
return jsonString;
}
catch
{
return null;
}
}
}
usage:
var jsonString = yourclass.SerializeObject();
var classObject = serialisedString.DeserializeObject<yourClass>();
Upvotes: 1
Reputation:
create a generic method like this:
public T DeserializeObject<T>(string serializedStr)
{
return JsonConvert.DeserializeObject<T>(serializedStr);
}
Upvotes: 2
Reputation: 3513
All you have to do is:
public dynamic Deserialize(string serializedStr, Type type)
{
return JsonConvert.DeserializeObject(serializedStr, type);
}
Upvotes: 4