2013-05-31 58 views
0

我有一個問題,從對象的名單序列化一個JSONJSON序列化數組到對象

我的目標是有這個格式=>

var tag =     
    { 
      RCP: {name: "Dossier à présenter en RCP", type: "checkbox", events: {change: function(e) { console.log(e.data); console.log(e); } }, callback: function(key, opt){ console.log("key : " + key); console.log(opt); alert(opt.$trigger.attr("id")); }}, 
      COL: {name: "Dossier à présenter en colloque", type: "checkbox", callback: function(key, opt){ console.log("key : " + key); console.log(opt); alert(opt.$trigge.attr("id")); }}, 
      COM: {name: "Commentaire", type: "textarea", callback: function(key, opt){ console.log("key : " + key); console.log(opt); alert(opt.$trigge.attr("id")); }} 
    }; 

我使用EF檢索數據因爲這個:

 var list = (from e in l_entities.TAG 
        where e.tag_site_code.Trim() == siteCode.Trim() 
        select new CvrTag 
        { 
         Id = e.tag_id, 
         Name = e.tag_libelle, 
         Type = e.tag_site_code 
        } 
       ).ToList(); 

但我檢索經典的數組,當我使用JsonConvert.SerializeObject(列表)。

所以我的問題是: - 如何有括號,而不是數組的括號 - 如何有一個id(即:RCP或COL)的JSON對象之前沒有引號 - 同裏面的JSON對象(即:名稱或型)

感謝您的幫助

+0

也許這樣? http://stackoverflow.com/questions/6366118/converting-list-to-json-format-quick-and-easy-way –

回答

0

既然你調用ToList(),您的序列將是一個列表/陣列。如果你想要一個對象,請使用ToDict()

var dict = (from e in l_entities.TAG 
      where e.tag_site_code.Trim() == siteCode.Trim() 
      select new CvrTag 
      { 
       Id = e.tag_id, 
       Name = e.tag_libelle, 
       Type = e.tag_site_code 
      } 
     ).ToDict(t => t.Id); 
+0

字典是完美的我的用法,謝謝。我現在需要刪除關鍵字:) –

+0

在JavaScript中,即使你的關鍵字是一個字符串(帶引號),你也可以用點符號來訪問它,所以在大多數用例中,刪除關鍵字的引用並不是必須的。換句話說,這是有效的:'var tag = {「RCP」:{...}};警報(tag.RCP);'。 – dlebech

+0

對,這是與引用:) –