2013-06-04 67 views
4

我有一個Json字符串。我想從Json字符串中獲得價值。SQL Server中的JSON數據處理

這是我的JSON字符串 {"latitude":"22.5712854"},{"longitude":"88.4266847"}

我想僅從這latitudelongitude,使用T-SQL查詢。

+3

這可以幫助你:HTTPS:/ /www.simple-talk.com/sql/t-sql-programming/consuming-json-strings-in-sql-server/ –

+0

TSQL本身不能解析JSON,它是一種非常弱的文本解析和處理語言(儘管你可以只用'SUBSTRING'和'CHARINDEX'解析你所顯示的字符串)。使用數據庫之外的代碼或可能的CLR過程來做到這一點幾乎肯定會更容易;這樣你就可以使用支持JSON的語言,或者至少具有良好的文本處理功能。 – Pondlife

+2

可能重複的[在TSQL中解析JSON](http://stackoverflow.com/questions/2867501/parse-json-in-tsql) – AndrewC

回答

5

在TSQL中沒有原生的解析JSON的方法。但是Phil Factor在SQL函數中創建了自己的JSON實現。更多關於簡單談話博客文章:Consuming JSON Strings in SQL Server

Aslo Ric Vander方舟創造了自己的功能,但我沒有測試它。您可以在文章中閱讀更多內容:A Function to Split JSON Data

+2

「在TSQL中沒有原生的解析JSON的方式,但是Phil Factor創建了自己的實現[在TSQL中解析JSON]」< - 最好的矛盾。不過,謝謝關於如何在TSQL中解析JSON的鏈接。 :) – rainabba

+0

所列的自定義實現與原生(即內置)方式不同。 – Runonthespot

0

您可以使用JSON Select,它有幾個函數用於從JSON中提取不同的數據類型。對於你的要求,你可以做這樣的事情:

select 
    dbo.JsonDecimal(my_column, 'latitude') as latitude, 
    dbo.JsonDecimal(my_column, 'longitude') as longitude 
from my_table 

披露:我是JSON選擇的作者,這樣對你有興趣使用它:)