Hello,
I want to try datatable to nested json using c# but not getting result according to me.
Output Should be:
[{ "Semesters": [{ "Semester": "Semester I", "CourseList": [{ "Coursename": "Accounting for Managers", "Credit": "4", "CourseCode": "ANK001", "Specialization": "" }, { "Coursename": "Business Communication", "Credit": "4", "CourseCode": "ANK001", "Specialization": "" } ] }, { "Semester": "Semester II", "CourseList": [{ "Coursename": "Accounting for Managers", "Credit": "4", "CourseCode": "ANK001", "Specialization": "" }, { "Coursename": "Business Communication", "Credit": "4", "CourseCode": "ANK001", "Specialization": "" } ] }, { "Semester": "Semester III", "CourseList": [{ "Coursename": "Accounting for Managers", "Credit": "4", "CourseCode": "ANK001", "Specialization": "" }, { "Coursename": "Business Communication", "Credit": "4", "CourseCode": "ANK001", "Specialization": "" } ] }, { "Semester": "Semester IV", "CourseList": [{ "Coursename": "Accounting for Managers", "Credit": "4", "CourseCode": "ANK001", "Specialization": "" }, { "Coursename": "Business Communication", "Credit": "4", "CourseCode": "ANK001", "Specialization": "" } ] } ],
"Specializations": [{ "Specialization Name": "Specialization Name", "Secialization Semesters": [{ "Semester": "Semester I", "CourseList": [{ "Coursename": "Accounting for Managers", "Credit": "4", "CourseCode": "ANK001", "Specialization": "" }, { "Coursename": "Business Communication", "Credit": "4", "CourseCode": "ANK001", "Specialization": "" } ] }, { "Semester": "Semester II", "CourseList": [{ "Coursename": "Accounting for Managers", "Credit": "4", "CourseCode": "ANK001", "Specialization": "" }, { "Coursename": "Business Communication", "Credit": "4", "CourseCode": "ANK001", "Specialization": "" } ] }] }] }]
I have tried:
var semesterData = dt.AsEnumerable().GroupBy(r => new { Semester = r["Semester"] }).Select(c => new { Semester = c.Key.Semester, CourseList = c.Select(s => new { CourseName = s.Field<string>("Coursename"), Credit = s.Field<int>("Credit"), CourseCode = s.Field<string>("NewCourseProgarmcode"), Specialization = s.Field<string>("Specialization") }).Where(x => x.Specialization == "").Distinct().ToList(), //Specialization = c.Select(s => new { Specialization = s.Field<string>("Specialization"), Coursename = s.Field<string>("Coursename") }).Where(x => x.Specialization != "").Distinct().ToList() }).Distinct().ToList();
var specializationData = dt.AsEnumerable().GroupBy(r => new { SpecializationName = r["Specialization"]} ).Select(c => new { SpecializationName = c.Select(s => new { SpecializationName = s.Field<string>("Specialization") }).Where(x => x.SpecializationName != "").Distinct().ToList(), //CourseName = c.Select(s => new { Coursename = s.Field<string>("Coursename"), Specialization = s.Field<string>("Specialization") }).Where(x => x.Specialization == "").Distinct().ToList() }).Distinct().ToList();
var result = semesterData + "," + specializationData; return Request.CreateResponse(HttpStatusCode.OK, result);
Please help me.