The below code will serialize an object into JSON and deserialize that JSON back into the object using Generic Method.

Adding the Namespace

using
System.Runtime.Serialization.Json;

Generic Json Serialization

public static string JsonSerializer<T>(T t)
{
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
MemoryStream ms = new MemoryStream();
ser.WriteObject(ms, t);
string jsonString = Encoding.UTF8.GetString(ms.ToArray());
ms.Close();
return jsonString;
}

Generic Json Deserialization

public static T JsonDeserialize<T>(string jsonString)
{
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
T obj = (T)ser.ReadObject(ms);
return obj;
}

Calling the Methods.

protected void Page_Load(object sender, EventArgs e)
{
Person p = new Person();
p.Name = "Tony";
p.Age = 23;
string jsonString = JsonSerializer<Person>(p);
Response.Write(jsonString);
Person pp = JsonDeserialize<Person>(jsonString );
}

public class
Person
{
public string Name { get; set; }
public int Age { get; set; }
}