JSON:自IEnumerable派生类型的序列化 [英] JSON: Serializing types derived from IEnumerable
本文介绍了JSON:自IEnumerable派生类型的序列化的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
的JavaScriptSerializer序列化自IEnumerable衍生的JavaScript数组类型。它方便了数组和列表,但在某些情况下,我需要序列化派生类型(例如,在IGrouping键)声明的属性。这里是一些样本code:
JavaScriptSerializer serializes types derived from IEnumerable as JavaScript arrays. It convenient for arrays and lists but in some cases I need to serialize properties declared in derived type (e.g. Key in IGrouping). Here some sample code:
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
有没有针对此问题的任何简单的解决方案?
Is there any simple solution for this problem?
推荐答案
您可以试试这个:
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);
或者如果你preFER:
or if you prefer:
var items = new[] { "aaabbb", "abcd", "bdsasd", "bsdqw" };
var data = items.GroupBy(i => i[0])
.Select(x => new { Key = x.Key, Value = x })
.First();
var serializer = new JavaScriptSerializer();
var serialized = serializer.Serialize(data);
在这两种情况下,结果将是:
In both cases the result would be:
{"Key":"a","Value":["aaabbb","abcd"]}
这篇关于JSON:自IEnumerable派生类型的序列化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文