我的链接是:http : //emkan.bstc.ir : 8082/bstco/emkan/mgmt/server/index.php?road=webapi/testwebservice/getDataEmkan&Date1=13961210&Date2=13961210&Hour1 =0& Hour2 =0& usr=movalled2&pwd6=movalled2&pwd6= 17366,17368,17370,17364,17372,17374,17378,17377,17379,17380,17381,17382,17392,17394,17396,17396,17377,140,17371,1737,17371,17381,17396,17396,17389,10,17379
我想从 webservice 检索数据,然后将其插入到 SQL 表中。
这是一个非常糟糕的问题......
SQL-Server 不是从 Web 服务读取 JSON 的工具。这应该由您的应用程序完成。您可以在应用程序中解析 JSON 并传递解析后的数据,也可以按原样传递 JSON并使用 SQL-Server 的功能。
请注意,本机 JSON 支持在 v2008 R2 中不可用。这是在 SQL Server 2016 中引入的。
请发布您的 JSON 的简化(!)示例以及您希望如何插入它的表结构。最好是 DDL 和一些代码来展示您自己的尝试并重现您的问题。SO 上的人讨厌链接......
而且:SO 不是一个做我工作的平台......
只是一些如何继续的提示(同样适用于任何应用程序的代码):
DECLARE @json NVARCHAR(MAX)=
N'PlaceTheJsonHere';
SELECT *
FROM OPENJSON(@json)
如果我从您的链接获得两行,则返回两行,其中一行带有“成功”和一个数组,第二行带有“结果”和一个空数组。
所以我尝试进入数组
SELECT *
FROM OPENJSON(@json) A
OUTER APPLY OPENJSON(A.value)
现在我得到 402 行“成功”。该值是 - 再次 - 一个数组:
一个示例值如下所示
["049644010478","049644010478","049644010478","049644010478","\u06a9\u0646\u062a\u0648\u0631\u0647\u0627\u06cc \u0645\u0648\u0644\u062f \u0628\u0631\u0642 \u0634\u0645\u0627\u0644 \u063a\u0631\u0628","600\/5","1\/1","\u0633\u0627\u0632\u0645\u0627\u0646 \u0635\u0646\u0627\u064a\u0639 \u062f\u0641\u0627\u0639","\u062f\u0627\u0646\u0634\u06af\u0627\u0647-\u0645\u0648\u0644\u062f\u0628\u0631\u0642","\u0633\u0627\u0632\u0645\u0627\u0646 \u0635\u0646\u0627\u064a\u0639 \u062f\u0641\u0627\u0639",null,null,"13961210","0","12","10","1396","\u067e\u0646\u062c \u0634\u0646\u0628\u0647","1210","1210.0",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"OFFLINE"]
愚蠢的\u0633
值是 unicode 代码点。
再深一层:
SELECT *
FROM OPENJSON(@json) A
OUTER APPLY OPENJSON(A.value) B
OUTER APPLY OPENJSON(B.value) C
现在我发现,第一行显示 56 个列名,而其他行提供内容。这似乎是一张桌子。下面显示了包含最后一列名称和第一个值的摘录(现在总共有 22500 多行:
52 POWER_FACTOR_PHASE_A
53 POWER_FACTOR_PHASE_B
54 POWER_FACTOR_PHASE_C
55 READ_FLAG
0 049644009814
1 049644009814
2 049644009814
3 049644009814
4 کنتورهای مولد برق شمال غرب
5 1000/5
6 1/1
7 آفتاب 22(شرق بزگراه آزادگان-بين اتوبان کرج و حکيم(خرگوش دره) پ)
伟大的!JSON 引擎隐式地将 unicode 代码点显示为可读字母!
我们现在知道什么?这个 json 提供了一个“成功”和一个“结果”部分。“成功部分包含一个数组数组,其中第一个索引是一个列名数组,而其余部分是表格数据。
剩下的就靠你了:-D
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句