JavaScriptSerializerはIEnumerableから派生した型をJavaScript配列としてシリアル化します。配列やリストに便利ですが、派生型で宣言されたプロパティを直列化する必要がある場合もあります(IGroupingのキーなど)。ここではいくつかのサンプルコード:JSON:IEnumerableから派生した型のシリアル化
var items = new[] { "aaabbb", "abcd", "bdsasd", "bsdqw" };
IGrouping<char, string> data = items.GroupBy(i => i[0]).First();
var serializer = new JavaScriptSerializer();
var serialized = serializer.Serialize(data);
// serialized == "[\"aaabbb\",\"abcd\"]"
// doesn't contain definition for IGrouping.Key property
この問題の解決方法はありますか?
var items = new[] { "aaabbb", "abcd", "bdsasd", "bsdqw" };
var data = (from x in items
group x by x[0] into g
select new
{
Key = g.Key,
Value = g
}).First();
var serializer = new JavaScriptSerializer();
var serialized = serializer.Serialize(data);
またはあなたが好む場合:あなたはこの試みることができる
私はあなたのアイデアを持っているが、私はのIEnumerableから派生したすべてのタイプのサポートと一般的な解決策を探しています:さえいるICollection、IGrouping、ILookupとカスタムユーザータイプ – altso