Wenn Sie eine einfache Tabelle haben wie:Wie JSON aus einer EAV-Tabelle in SQL Server erstellen
Id Name Age
1 Saeed 32
2 John 28
3 David 34
Dann Sie eine JSON mit For XML
in SQL Server erstellen können einfach:
select '{ name : "' + Name + '", age : ' + age + ' }'
from People
where Id = 1
for xml path('')
Dies ist einfach, da die Spalten vorher bekannt sind. Ich stehe jedoch fest, JSON aus einer EAV-Tabelle zu erstellen. Zum Beispiel, wenn die Tabelle ist:
Id EntityId Key Value
1 1 Name Saeed
2 1 Age 32
3 1 Gender Male
4 1 Key1 Value1
5 1 Key2 Value2
Wie kann ich dieses JSON erstellen?
{ Name: "Saeed", Age: 32, Gender: "Male", Key1: "Value1", Key2: "Value2" }
Aus dieser Abfrage:
select *
from PeopleEav
where EntityId = 1
Bitte beachten Sie, dass die Anzahl der Tasten variabel ist (es ist eine EAV-Tabelle).
Die Formatierung der Anzeige gehört nicht zum Backend. Tun Sie es im Kunden. –
Danke für diese wertvollen Informationen, liebe @RemusRusanu. Manchmal sind akademische Regeln nicht in Aktion;) –
Ein paar Leute haben dies mit gespeicherten Prozeduren angeheftet, wie [dies] (http://firozansari.com/2008/11/21/generating-json-from-tsql-query/) und [dies] (http://stackoverflow.com/a/15442030/864696). –