使用 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>();