首页 > 解决方案 > Json 反序列化错误。不支持的类型:System.Guid

问题描述

我正在研究一个 API 项目,但遇到了以下问题,

这是我要传递的 Json

{
  "MainClass": [
    {
      "Text": ".",
      "Id": {
        "System.Guid": "06073a9c-9cef-4f07-9180-2e54e0fa6416"
      }
    }
  ]
}

这是我的 c# 模型

public class MainClass {
  public List<SubClass> Subs {get;set;}
}

public class SubClass {
  public string Text {get;set;}
  public Guid Id {get;set;}
}

当我通过上面的json时,我遇到了错误

{ "Message": "The request is invalid.", "ModelState": { "MainClass.SubClass [0].Id": ["Json Deserialize error. Unsupported type of : System.Guid" ] } }

我也在Json下面尝试过,

{
  "MainClass": [
    {
      "Text": ".",
      "Id": "06073a9c-9cef-4f07-9180-2e54e0fa6416"
    }
  ]
}

我该如何解决?

当我使用邮递员发布 json 时会发生这种情况。我可以看到它击中了控制器,但没有击中动作。它会抛出如上所述的错误。

标签: c#jsondeserialization

解决方案


您需要以下类文件

public class Id
{
    [JsonProperty("System.Guid")]
    public string System_Guid { get; set; }
}


public class MainClass
{
    public string Text { get; set; }
    public Id Id { get; set; }
}

public class rootClass
{
    public List<MainClass> MainClass { get; set; }
}

推荐阅读