2013-12-24 3 views
0
public class childrens  { 
     public ICollection<childrens> children { get; set; } 
     public data data { get; set; } 
     public string id { get; set; } 
     public string name { get; set; } 
    } 


public static childrens GetJsonData() 
     { 
      childrens rootNode = new childrens(); 
      rootNode.data = new data(); 
      rootNode.id = "root"; 
      rootNode.name = "Top Albums"; 

      childrens objChildren547 = new childrens(); 
      objChildren547.data = new data { playcount = 547, area = "547" }; 
      objChildren547.id = "artist_A Perfect Circle"; 
      objChildren547.name = "A Perfect Circle"; 
      rootNode.children = new List<childrens>(); 
      rootNode.children.Add(objChildren547); 

      childrens objChildren276 = new childrens(); 
      objChildren276.data = new data { playcount = 276, artist = "A Perfect Circle", image = "http:\\/\\/userserve-ak.last.fm\\/serve\\/300x300\\/11403219.jpg", area = "276" }; 
      objChildren276.id = "album-Thirteenth Step"; 
      objChildren276.name = "Thirteenth Step"; 
      objChildren547.children = new List<childrens>(); 
      objChildren547.children.Add(objChildren276); 

      childrens objChildren271 = new childrens(); 
      objChildren271.data = new data { playcount = 271, artist = "A Perfect Circle", image = "http:\\/\\/userserve-ak.last.fm\\/serve\\/300x300\\/11403219.jpg", area = "271" }; 
      objChildren271.id = "album-Mer De Noms"; 
      objChildren271.name = "Mer De Noms"; 
      objChildren547.children.Add(objChildren271); 
      return rootNode; 
     } 

    [WebMethod] 
     public static HttpResponseMessage GetJsonData() 
     { 
      var data = jsondata.GetJsonData(); 
      return new HttpResponseMessage { Content = new ObjectContent(typeof(childrens), data, new System.Net.Http.Formatting.JsonMediaTypeFormatter() { SerializerSettings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, PreserveReferencesHandling = PreserveReferencesHandling.None, MaxDepth = 10 } }) }; 
      //return data; 
     } 

Приведенный выше код дает мне ошибку "Circular Reference Found". Я использовал обработку ссылок на свойства, но это не сработало.Циркулярная ссылка найдена. Свойство класса тип данных внутри класса

Как это сделать, используя библиотеку NewtonSoft.Json для ее сериализации. Спасибо заранее.

ответ

Смежные вопросы