不用写实体类,将对象分组
static void Main(string[] args)
{
var jsonStr = new StringBuilder();
//准备JSON 模拟从数据库查出的结果
jsonStr.Append("[");
jsonStr.Append("{\"clsid\":1,\"name\":\"wangdachui\",\"age\":23,\"email\":\"chentging@aliyun.com\"},");
jsonStr.Append("{\"clsid\":1,\"name\":\"wanglima\",\"age\":23,\"email\":\"chentging@aliyun.com\"},");
jsonStr.Append("{\"clsid\":1,\"name\":\"chrome\",\"age\":23,\"email\":\"chentging@aliyun.com\"},");
jsonStr.Append("{\"clsid\":1,\"name\":\"firefox\",\"age\":23,\"email\":\"chentging@aliyun.com\"},");
jsonStr.Append("{\"clsid\":2,\"name\":\"lisi\",\"age\":50,\"email\":\"lisi@aliyun.com\"},");
jsonStr.Append("{\"clsid\":2,\"name\":\"tianitan\",\"age\":50,\"email\":\"lisi@aliyun.com\"},");
jsonStr.Append("{\"clsid\":2,\"name\":\"akali\",\"age\":50,\"email\":\"lisi@aliyun.com\"},");
jsonStr.Append("{\"clsid\":2,\"name\":\"yi\",\"age\":50,\"email\":\"lisi@aliyun.com\"},");
jsonStr.Append(" ]");
//定义反序列化结果的结构
var tempData = new[] { new { clsid =0, name=string.Empty, age=1, email=string.Empty } };
//反序列化
var objData = JsonConvert.DeserializeAnonymousType(jsonStr.ToString(), tempData);
//分组
var groupData = objData.GroupBy(x => x.clsid).ToList();
Console.WriteLine(JsonConvert.SerializeObject(groupData));
Console.ReadLine();
}
效果:
结果JSON:
[
[{"clsid":1,"name":"wangdachui","age":23,"email":"chentging@aliyun.com"},{"clsid":1,"name":"wanglima","age":23,"email":"chentging@aliyun.com"},{"clsid":1,"name":"chrome","age":23,"email":"chentging@aliyun.com"},{"clsid":1,"name":"firefox","age":23,"email":"chentging@aliyun.com"}],
[{"clsid":2,"name":"lisi","age":50,"email":"lisi@aliyun.com"},{"clsid":2,"name":"tianitan","age":50,"email":"lisi@aliyun.com"},{"clsid":2,"name":"akali","age":50,"email":"lisi@aliyun.com"},{"clsid":2,"name":"yi","age":50,"email":"lisi@aliyun.com"}]
]