使用新引入的JSON_VALUE函数访问json内的数组时,我陷入了困境。请考虑以下代码-
IF EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='JsonData')
DROP TABLE JsonData;
go
CREATE TABLE JsonData(JsonData nvarchar(max));
DECLARE @SQL nvarchar(max);
DECLARE @Table AS TABLE(JsonPath VARCHAR(256));
INSERT INTO JsonData(JsonData)
VALUES(
'{
"firstName": "John",
"lastName" : "doe",
"age" : 26,
"address" : {
"streetAddress": "naist street",
"city" : "Nara",
"postalCode" : "630-0192"
},
"phoneNumbers": [
{
"type" : "iPhone",
"number": "0123-4567-8888"
},
{
"type" : "home",
"number": "0123-4567-8910"
}
]
}')
INSERT INTO @Table
SELECT VALUE FROM OPENJSON('{
"Path1":"$.firstName","Path2":"$.phoneNumbers[:1].number"
}') ;
SELECT @SQL=(SELECT 'UNION SELECT '''+ CAST(JsonPath AS VARCHAR(256)) +''',JSON_VALUE(JsonData,'''+a.JsonPath+''')
FROM JsonData a'
FROM @Table a
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)')
FROM @Table t;
SELECT @SQL=RIGHT(@SQL,LEN(@SQL)-5)
PRINT @SQL
EXEC SP_EXECUTESQL @SQL;
在这里,如果我想访问特定的电话号码,则访问该节点的常规语法不起作用。在这种情况下,我遇到以下错误
JSON path is not properly formatted. Unexpected character ':' is found at position 15.
虽然当我在http://jsonpath.com上进行检查时,却能够检索值。SQL Server
2016是否使用某些不同的语法来访问JSON值?
要从phoneNumbers获取全部信息:
DECLARE @json nvarchar(max)=
'{
"firstName": "John",
"lastName" : "doe",
"age" : 26,
"address" : {
"streetAddress": "naist street",
"city" : "Nara",
"postalCode" : "630-0192"
},
"phoneNumbers": [
{
"type" : "iPhone",
"number": "0123-4567-8888"
},
{
"type" : "home",
"number": "0123-4567-8910"
}
]
}'
SELECT [Type], [Number]
FROM OPENJSON( @json, '$.phoneNumbers' )
WITH ([Type] NVARCHAR(25) '$.type', [Number] NVARCHAR(25) '$.number');
问题内容: 我以为我知道该怎么做,但显然不知道。我有Flickr的API,它的开始如下: 现在我需要获取的信息来自照片阵列,因此我一直在尝试做的是: 很清楚,我似乎没有抓住重点,但是我不确定如何获取信息。 问题答案: 快速浏览Retrofit的文档说,它使用Gson将JSON转换为Java类。这意味着您需要Java中与JSON相匹配的类层次结构。你的…没有。 返回的JSON是具有单个字段“ pho
我正在尝试迭代一个JSON对象。 对于下面的代码: 在第一个ng-repeat中:< br > < code > { { user . type } } outputs ' Parent '(如预期一样),< br > < code > { { user . options } } outputs '[{ " option 1 ":" 11 qwert "," option2":"22QWERT"
问题内容: 我正在尝试使用访存api来带回一些数据,但是一旦检索到它就无法将其映射到控制台。 我得到的错误是 response.map不是函数 所以我试图解析响应(即var data = JSON.parse),该响应不起作用,并显示错误 有趣的是,当对XMLHttp请求执行相同操作时,需要解析它,因此我也想知道为什么这两种检索数据方法之间的区别。 如果有人能指出正确的方向,我将不胜感激。 问题答
问题内容: 如果通过网络服务获得以下数据: 我如何访问第二个col1? 如下: 给我: 问题答案: 它是一个包含2个元素的数组,其中包含和,所以类似: (是第一个元素,然后选择“ col1”)
问题内容: 我正在尝试使用angular.js,hammer.js和topcoat制作和移动webapp。 我在显示像这样的Json文件中的数据时遇到了一些麻烦: 我的js文件是这样的: 我的HTML文件是这样的: 我想显示所有专辑,并且如果我的用户选择特定的艺术家,我想过滤那些专辑。 这里的问题是如何在此嵌套json上进行选择。顺便说一句,artist.name显示正确。 第二个问题是,如何过滤
问题内容: 我有以下JSON对象: 这是来自一个请求,我有成功。 问题是,即使dataJS在控制台中正确显示,我也无法访问JSON对象中的项目。有想法吗? 问题答案: 那是因为您的基础对象也是数组。 我怀疑那会有用