0

我在从对象列表中序列化 json 时遇到问题

我的目标是拥有这种格式 =>

    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(list) 时,我检索了一个经典的数组。

所以我的问题是: - 如何用大括号代替数组的括号 - 如何在不带引号的 json 对象之前有一个 id(即:RCP 或 COL) - 与内部 json 对象相同(即:名称或类型)

谢谢你的帮助

4

1 回答 1

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);
于 2013-05-31T09:37:01.857 回答