使用 JsonConvert 反序列化
Deserialization using JsonConvert
我正在尝试编写一个接受 JSON 字符串和类型的方法。该方法的目的是反序列化类型指定的对象中的字符串。我希望代码看起来像下面的东西
public dynamic Deserialize(string serializedStr, Type type) {
return JsonConvert.Deserialize<type>(serializedStr);
}
是否可以使用 Newtonsoft.JSon 进行这样的操作?
您所要做的就是:
public dynamic Deserialize(string serializedStr, Type type)
{
return JsonConvert.DeserializeObject(serializedStr, type);
}
像这样创建一个通用方法:
public T DeserializeObject<T>(string serializedStr)
{
return JsonConvert.DeserializeObject<T>(serializedStr);
}
这里有一个辅助扩展方法的小例子 static class 为双方服务(如果进入产品则需要范围界定等):
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;
}
}
}
用法:
var jsonString = yourclass.SerializeObject();
var classObject = serialisedString.DeserializeObject<yourClass>();
我正在尝试编写一个接受 JSON 字符串和类型的方法。该方法的目的是反序列化类型指定的对象中的字符串。我希望代码看起来像下面的东西
public dynamic Deserialize(string serializedStr, Type type) {
return JsonConvert.Deserialize<type>(serializedStr);
}
是否可以使用 Newtonsoft.JSon 进行这样的操作?
您所要做的就是:
public dynamic Deserialize(string serializedStr, Type type)
{
return JsonConvert.DeserializeObject(serializedStr, type);
}
像这样创建一个通用方法:
public T DeserializeObject<T>(string serializedStr)
{
return JsonConvert.DeserializeObject<T>(serializedStr);
}
这里有一个辅助扩展方法的小例子 static class 为双方服务(如果进入产品则需要范围界定等):
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;
}
}
}
用法:
var jsonString = yourclass.SerializeObject();
var classObject = serialisedString.DeserializeObject<yourClass>();