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 に答える