首页 > 解决方案 > 导入 URL 返回值

问题描述

我正在尝试从量子随机数生成器导入数据并将其加载到表中:
https ://qrng.anu.edu.au/API/jsonI.php?length=10&type=uint8&size=1

结果,如果您要在浏览器中运行 URL,将完全如下所示:

{"type":"uint8","length":10,"data":[76,104,98,90,47,116,250,86,43,108],"success":true}

它只是一个我可以轻松解析的字符串返回......但我在搜索如何执行此操作时看到的只是 XML 和 JSON 的东西。我不需要那个。我只想执行一个简单的 URL 并解析字符串返回值……但这让我很困惑。

标签: tsqlurl

解决方案


您没有提供足够的示例数据来提供完整的答案,但这里有一些示例代码可以让您接近:

DECLARE @string VARCHAR(8000) = 'https://qrng.anu.edu.au/API/jsonI.php?length=10&type=uint8&size=1';

SELECT NewString = 
'{'+STRING_AGG(CONCAT('"',SUBSTRING(s.Item,1,idx.N-1),'":')+
  ISNULL(CAST(TRY_CAST(f.S AS INT) AS VARCHAR(8000)), CONCAT('"',f.S,'"')),',')+'}'

FROM        (VALUES(SUBSTRING(@string,CHARINDEX('?',@string)+1,8000))) AS ns(NewString)
CROSS APPLY dbo.DelimitedSplit8K(ns.NewString,'&')                     AS s
CROSS APPLY (VALUES(CHARINDEX('=',s.Item)))                            AS idx(N)
CROSS APPLY (VALUES(SUBSTRING(s.Item,idx.N+1,8000)))                   AS f(S);

回报:

{"length":10,"type":"uint8","size":1}

推荐阅读