检查JSON是否可以转换为c#类

时间:2017-10-20 17:02:29

标签: c# json json.net

我想要这样的东西

public object LoadFromConfig(Type type, string sectionName)
{
  try 
  {
     serializedJson = //fetch and serialize the Json from given sectionName
     return JsonConvert.DeserializeObject(serializedJson, type,
     JsonSerializerSettings);

  }
  //was expecting this exception if serializedJson is not convertible to type.
  catch(ArgumentException e)
  {

    return null;

  }
如果DeserializedObjecttype不匹配,

serializedJson将返回type类型的空对象。在这种情况下,我想返回null。请提供您的建议。

1 个答案:

答案 0 :(得分:0)

@YakRangi,我认为雅各布给你一个关于泛型类型的好点,你应该创建与你期望的json相当的类,然后调用

JsonConvert.DeserializeObject<T>(serializedJson, JsonSerializerSettings);

现在让我们假设你期望的json有一个属性password是一个字符串,然后创建你的类

class MyClass
{
    [JsonProperty("password")]
    public string Password
}

然后你有一个

try
{
    var res = JsonConvert.DeserializeObject<MyClass>(serializedJson, JsonSerializerSettings);
}
catch
{
    return null;
}

希望这有帮助