使用JsonConvert.SerializeObject序列化派生列表

时间:2013-12-21 12:06:59

标签: c# json serialization

我有一个简单的课程:

 public class ProductListStoredModel: List<Product>
 {
        public int NextId { get; set; }
 }

如果我使用:

  ProductListStoredModel stored_model = ...
  string new_json = JsonConvert.SerializeObject(stored_model);

很乐意将列表序列化。但是,它不会向JSON添加“NextId”。有没有一种简单的方法(比如添加属性)?

1 个答案:

答案 0 :(得分:2)

  class Program
    {
        static void Main()
        {
            ProductListStoredModel stored_model = new ProductListStoredModel();
            Product p = new Product();
            stored_model.Add(p);
            stored_model.NextId = 10;
            stored_model.Pro = stored_model[0];
            string new_json = JsonConvert.SerializeObject(stored_model);
            Console.WriteLine(new_json);
            Console.ReadLine();
        }
    }

    [JsonObject(MemberSerialization.OptIn)]
    public class ProductListStoredModel : List<Product>
    {
        //public Product[] pro { get; set; }
        [JsonProperty]
        public int NextId { get; set; }

        [JsonProperty]
        public Product Pro { get; set; }

    }

您也可以创建产品的数组属性,并可以继续。

public Product[] Pro { get; set; }