I złożył następujące oświadczenie linqC# + EntityFramework: Konwersja wielu grupy przez zapytania do zagnieżdżonego JSON
C#
var list = from row in repository.GetAllEntities()
group row by new { row.RegionString, row.SubRegionString, row.CountryString } into g
select new { g.Key.RegionString, g.Key.SubRegionString, g.Key.CountryString, Count = g.Count() };
return Json(list, JsonRequestBehavior.AllowGet);
która zwraca
[
{
"RegionString":"Americas",
"SubRegionString":"",
"CountryString":"",
"Count":2
},
{
"RegionString":"Americas",
"SubRegionString":"NorthAmerica",
"CountryString":"Canada",
"Count":5
},
{
"RegionString":"Americas",
"SubRegionString":"NorthAmerica",
"CountryString":"US",
"Count":3
},
{
"RegionString":"Americas",
"SubRegionString":"SouthAmerica",
"CountryString":"Chile",
"Count":3
},
{
"RegionString":"EMEA",
"SubRegionString":"AsiaPacific",
"CountryString":"Australia",
"Count":2
},
{
"RegionString":"EMEA",
"SubRegionString":"AsiaPacific",
"CountryString":"Japan",
"Count":1
},
{
"RegionString":"EMEA",
"SubRegionString":"SouthernEurope",
"CountryString":"Turkey",
"Count":1
},
{
"RegionString":"EMEA",
"SubRegionString":"WesternEurope",
"CountryString":"",
"Count":1
}
]
ale ja staram się zrobić w tym formacie:
[{
name: "Americas",
children: [
{
name: "NorthAmerica",
children: [{ "name": "Canada", "count": 5 },
{ "name": "US", "count": 3 }]
},
{
name: "SouthAmerica",
children: [{ "name": "Chile", "count": 1 }]
},
],
},
{
name: "EMA",
children: [
{
name: "AsiaPacific",
children: [{ "name": "Australia", "count": 2 },
{ "name": "Japan", "count": 1 }]
},
{
name: "SouthernEurope",
children: [{ "name": "Turkey", "count": 1 }]
},
],
}]
Jak zmodyfikować wyciąg, aby uzyskać oczekiwany wynik? Odpowiedzi innych niż linq są również akceptowalne.
EDIT: Region jest rodzicem podregionu, podregion jest rodzicem Kraj i hrabia jest unikalna liczba elementów, które należy do Kraju
czy możesz wyjaśnić, co próbujesz zrobić poza formatem? to znaczy. region podrzędny jest ciągiem znaków dla regionu –
Wystarczy edytować odpowiedź w hierarchii. Mam nadzieję, że to jest pomocne. – tcigrand
prawdopodobnie możesz to zrobić za pomocą słownika słowników, próbuję teraz znaleźć rozwiązanie –