2016-02-12 67 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。