#c# #json #datatable #webapi
Вопрос:
Вот данные, которые у меня есть.
Чтобы получить вложенный JSON, подобный этому:
[
{
"ID":"1",
"Subject":"Eng",
"Marks":70,
"CHILD":[
{
"ID":"1",
"Subject":"Math",
"Marks":90
},
{
"ID":"1",
"Subject":"Phy",
"Marks":80
}
]
},
{
"ID":"2",
"Subject":"Eng",
"Marks":75,
"CHILD":[
{
"ID":"1",
"Subject":"Math",
"Marks":85
}
]
},
{
"ID":"3",
"Subject":"Math",
"Marks":60,
"CHILD":[
]
}
]
Если идентификатор имеет N номеров mark details
, 1-й mark detail
станет заголовком, а остальные (N-1) будут отображаться под тегом ДОЧЕРНЕГО массива.
Пожалуйста, помогите мне создать вложенный JSON (группа по идентификатору), как в примере выше. Пожалуйста, посоветуйте.
Комментарии:
1. Как вы решите, что английский язык является вашим основным элементом?
2. Я думаю, вы справитесь с этим с помощью Newtonsoft и LINQ.
3. Тема @AmitGupta строится в порядке asc. Так что Энлиш придет в качестве главного элемента.
Ответ №1:
Вам нужно создать класс примерно так —
> class myClass {
> public string Id {get;set;}
> public string Subject {get;set;}
> public int Marks {get;set;}
> public List<myClass> CHILD {get;set;} }
Затем выполните цикл по таблице данных и заполните данные об объекте этого класса.
Затем используйте NewtonSoft для преобразования класса в JSON.
Пожалуйста, дайте мне знать, если вам понадобятся дополнительные разъяснения.
Комментарии:
1. У меня есть миллионы записей , таких как, так что я думаю, что зацикливание — не очень хороший вариант. Я пытаюсь справиться с этим с помощью LINQ , но не получаю ожидаемого результата
2. @ArijitMondal миллионы записей должны быть отфильтрованы на стороне базы данных до того, как произойдет преобразование Json. Я полагаю, что было бы трудно обрабатывать json для миллионов записей. В современном MS SQL есть функция «для json» , которая может вам пригодиться
3. Кстати, Linq предоставляет нам только способ минимизировать код и помогает нам предоставлять более читаемый и гибкий код. Внутренне он зацикливает записи. Если вы беспокоитесь о производительности, то вы можете создать свой JSON в самой базе данных. Почти все современные RDM предоставляют способ создания и чтения JSON.