【问题标题】:How do i remove the List type property name and the {} and [] brackets while serialing in C#如何在 C# 中序列化时删除列表类型属性名称以及 {} 和 [] 括号
【发布时间】:2021-11-28 06:57:56
【问题描述】:

这是我正在序列化的模型

    public class SomeClassOne
    {
        public string name { get; set; }
        public string Gender { get; set; }
        public int Age { get; set; }
        public List<Product> Products { get; set; }
        public List<Location> locations { get; set; }
        public string DOB { get; set; }
    }

    public class Product
    {
        public string Code { get; set; }
        public string Price { get; set; }

    }

    public class Location
    {
        public string Address { get; set; }
        public string PinCode { get; set; }
    }

/我正在为该模型属性赋值

    public List<Product> GetProducts()
    {
        List<Product> Products = new List<Product>();
        string[] codes = { "Code-A", "Code-B", "Code-C","Code-D", "Code-E" };
        foreach (var cod in codes)
        {
            Product product = new Product();
            product.Code = cod;
            Products.Add(product);
        }
        return Products;
    }

    public List<SomeClassOne> someClss()
    {
        List<SomeClassOne> someCls = new List<SomeClassOne();
        SomeClassOne classOne = new SomeClassOne();
        someCls.Add(classOne);
        classOne.Products = GetProducts();

        return someCls;
    }

    string json = JsonConvert.SerializeObject(someClss(), Formatting.Indented);
   
    Console.WriteLine(json);
    Console.ReadLine();
}

生成的Json如下

[
  {
    "name": null,
    "Gender": null,
    "Age": 0,
    "Products": [
      {
        "Code": "Code-A",
        "Price": null
      },
      {
        "Code": "Code-B",
        "Price": null
      },
      {
        "Code": "Code-C",
        "Price": null
      },
      {
        "Code": "Code-D",
        "Price": null
      },
      {
        "Code": "Code-E",
        "Price": null
      }
    ],
    "locations": null,
    "DOB": null
  }
]

如何删除 {} [] 并在序列化后生成如下 Json

 [
          {
            "Code": "Code-A",
            "Price": null
          },
          {
            "Code": "Code-B",
            "Price": null
          },
          {
            "Code": "Code-C",
            "Price": null
          },
          {
            "Code": "Code-D",
            "Price": null
          },
          {
            "Code": "Code-E",
            "Price": null
          }
    ]

任何人请帮助我,我已经看到了一些合同解析器,但没有找到任何解决方案,在此先感谢。

【问题讨论】:

  • 这很难理解,但看起来你只需要序列化一个 List&lt;Product&gt; 的实例就可以了,其余的就不用管了。
  • 使用 json 库你只需要得到产品结果:returnvalue['Products']
  • @DavidG 是的,这个 List 在 SomeClassOne 和这个类中
  • 是的,我是说你应该序列化 GetProducts() 的结果而忘记其余的。
  • @DavidG 实际上,这个 SomeClassOne 又是另一个类中的 List 类型属性,它们是我实际上正在序列化的更大类的一部分,那么在这种情况下我该如何实现。跨度>

标签: c# json asp.net-mvc json-serialization


【解决方案1】:

试试这个

var products=GetProducts();

string json = JsonConvert.SerializeObject(products, Newtonsoft.Json.Formatting.Indented);

    Console.WriteLine(json);
    Console.ReadLine();

json

[
  {
    "Code": "Code-A",
    "Price": null
  },
  {
    "Code": "Code-B",
    "Price": null
  },
  {
    "Code": "Code-C",
    "Price": null
  },
  {
    "Code": "Code-D",
    "Price": null
  },
  {
    "Code": "Code-E",
    "Price": null
  }
]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多