2013-12-21 1 views
2

을에는 직렬화하기 : 내가 사용하는 경우JsonConvert.SerializeObject를 사용하여 나는 간단한 클래스가 파생 목록

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

을 :

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

그것은 행복하게 목록에는 직렬화됩니다. 그러나 JSON에 'NextId'를 추가하지 않습니다. 속성 추가와 같은 간단한 방법이 있습니까?

+0

은 json 직렬화에 사용하는 클래스 이름 또는 라이브러리 이름을 공유합니다. –

+0

그것은 VS2013과 함께 제공되는 것입니다 : Newtonsoft.Json.JsonConvert – Rob

+0

'Newtonsoft.Json'은 이것을 지원하지 않으므로 커스텀 컨버터를 작성해야합니다.하지만이 경우 생성 된 JSON 응답은 어떻게 보이게해야합니까? 내 수업을'public class ProductListStoredModel로 바 꾸었습니다. { 공개 목록 제품 {get; 세트; } public int NextId {get; 세트; } }'... – nemesv

답변

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; } 
+0

나는 얻을 수 없었습니다. 위와 같이 상속받을 때리스트를 직렬화한다. 나는 목록을 집계하고 그것이 작동하는 모든 속성을 제거한다면 그것을 발견했다. – Rob

관련 문제