从SQL表转换Json

时间:2017-07-10 09:56:54

标签: json sql-server-2016

我正在使用systemctl daemon-reload 。我想以给定的格式返回SQL Server 2016

选择陈述

Json

预期SELECT Country,[Arm Export],[Food Export] FROM Table 格式

Json

任何帮助将不胜感激....

2 个答案:

答案 0 :(得分:1)

试试这个......

SELECT'['+stuff(
                (SELECT ',{"'+Country+'":{"Arm Export": '+convert(varchar,[Arm Export])+',"Food Export": '+convert(varchar,[Food Export])+'}}'
                   FROM TABLE
                   FOR XML Path('')),1,1,'')+']'[Detail]

输出将是......

[
  {
    "India":{
             "Arm Export": 30,
             "Food Export": 50
            }
  },
  {
   "USA":{
          "Arm Export": 90,
          "Food Export": 5
         }
  },
  {
   "Russia":{
             "Arm Export": 90,
             "Food Export": 5
            }
  }
]

答案 1 :(得分:0)

如果您希望输出完全按照问题中的定义,那么Nithin的答案可能是最好的。

如果输出可能略有不同,您可以尝试FOR JSON PATH,如下所示:

SELECT Country, 
  [Arm Export] AS 'Export.Arm Export',
  [Food Export] AS 'Export.Food Export'
  FROM dbo.tb_CountryExport
  FOR JSON PATH;

那会给你一个像这样的输出:

[
  {
    "Country": "Russia",
    "Export": {
      "Arm Export": 90,
      "Food Export": 5
    }
  },
  {
    "Country": "India",
    "Export": {
      "Arm Export": 30,
      "Food Export": 50
    }
  },
  {
    "Country": "USA",
    "Export": {
      "Arm Export": 90,
      "Food Export": 5
    }
  }
]

但正如我所说,输出可能不是你想要的。

Niels