tsql - 导入 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 并解析字符串返回值……但这让我很困惑。
解决方案
您没有提供足够的示例数据来提供完整的答案,但这里有一些示例代码可以让您接近:
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}
推荐阅读
- android - Android:强制触发 textView 的 onClick()
- c# - ReadOnlySequence – 切片到给定的 SequencePosition + 1
- html - CSS;有没有办法不对某些 div 及其子级应用 css
- html - 如何显示 html 和 css 选择垂直和水平滚动条
- rebuild - '类型或命名空间名称'T4MVC_MyController'在命名空间'MyProject.Controllers.My'中不存在(您是否缺少程序集引用?)
- javascript - 为什么 React 中的事件在第二个关键字中有大写字母?
- azure-resource-manager - 使用 AZ CLI 更新天蓝色标签
- xquery - 更新数据库时没有更新表达式错误(BaseX)
- java - 在 Rest Web 服务中使用 https
- angular - 列表顺序更改角度 7