AspnetCore数据契约在JSON中序列化,使用我的字典的键的名称空间

本文关键字:字典 我的 空间 契约 数据 JSON 序列化 AspnetCore | 更新日期: 2023-09-27 18:11:47

我试着发送字典。这是我的字典的结构:

var gridsAndCountriesByShipper = new Dictionary<Organisation, List<Grid>>();

这是命名空间出现的类,而不是对象值:

namespace ez.webservice.PublicRestApi.DTO.References
{
    [DataContract(Name = "organisation", Namespace = "")]
    public class Organisation
    {
        [DataMember(Name = "id")]
        public int Id { get; set; }
        [DataMember(Name = "longName")]
        public string LongName { get; set; }
        [DataMember(Name = "shortName")]
        public string ShortName { get; set; }
    }
}

最后这是我发送这个对象的结果:

     return Ok(gridsAndCountriesByShipper);
{
  "ez.webservice.PublicRestApi.DTO.References.Organisation": [
    {
      "owner": {
        "$id": "1",
        "id": 2,
        "longName": null,
        "shortName": "Test"
      },
      "calendar": {
        "id": 3,
        "name": null,
        "dotNetName": null,
        "mySqlName": null,
        "offset": 0
      },
      "country": {
        "id": 13,
        "name": "France",
        "alpha2": "FR",
        "alpha3": "FRA",
        "grids": [],
        "logo": {
          "id": 13,
          "name": "France",
          "shortName": "FR"
        }
      },
      "countryFlag": null,
      "flag": "",
      "granularity": "DAY",

我没有找到解决办法

AspnetCore数据契约在JSON中序列化,使用我的字典的键的名称空间

您的Organisation不覆盖ToString()方法,默认行为是返回类名称与命名空间