2016-02-12 12 views
1

我使用下一個從SQL數據庫獲取數據,並在控制檯顯示它(例如)如何獲得JSON格式從SQL數據

DataContextDataContext ob = new DataContextDataContext(); 
foreach (var emp1 in ob.DimProducts) 
{ 
    Console.WriteLine(emp1); 
} 

foreach (var emp2 in ob.DimProductCategories) 
{ 
    Console.WriteLine(emp2); 
} 

foreach(var emp3 in ob.DimProductSubcategories) 
{ 
    Console.WriteLine(emp3); 
} 

enter image description here

如何我可以將數據轉換爲JSON ?

+0

哪種RDBMS適用於?請添加一個標籤來指定您是使用'mysql','postgresql','sql-server','oracle'還是'db2' - 或者其他的東西。一些RDBMS對JSON具有本地支持 - 其他不支持 –

回答

4

您應該使用Json.NET庫和JsonConvert.SerializeObject()它。

DataContextDataContext ob = new DataContextDataContext(); 
foreach (var emp1 in ob.DimProducts) 
{ 
    Console.WriteLine(JsonConvert.SerializeObject(emp1, Formatting.Indented)); 
} 
foreach (var emp2 in ob.DimProductCategories) 
{ 
    string jsonEmp2 = JsonConvert.SerializeObject(emp2, Formatting.Indented) 
    Console.WriteLine(jsonEmp2); 
} 

documentation中有很多例子。

您也可以從控制檯的NuGet安裝Json.NET:

PM> Install-Package Newtonsoft.Json 
1

JSON數據(SQL Server)的 - 我認爲你可以在你的查詢中使用這樣的 例:

"SELECT name, surname FROM emp FOR JSON AUTO" 

結果將如下所示:

[ 
    { "name": "John" }, 
    { "name": "Jane", "surname": "Doe" } 
] 

另一個示例查詢i小號

SELECT * FROM OPENJSON(@json, N'lax $.info') 
+1

儘管如此,您仍然需要SQL Server 2016。 –

1

如果您在使用Azure的或SQL Server 2016,你可以從SQL Server中加入FOR JSON PATH到您的SQL查詢的末尾直接得到JSON。