Pratik Bhattacharya
Pratik Bhattacharya

Reputation: 3746

Deserialization using JsonConvert

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

Answers (3)

jim tollan
jim tollan

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

user6045298
user6045298

Reputation:

create a generic method like this:

public T DeserializeObject<T>(string serializedStr)
{
    return JsonConvert.DeserializeObject<T>(serializedStr);
}

Upvotes: 2

Marcio Rinaldi
Marcio Rinaldi

Reputation: 3513

All you have to do is:

public dynamic Deserialize(string serializedStr, Type type)
{
    return JsonConvert.DeserializeObject(serializedStr, type);
}

Upvotes: 4

Related Questions