Skip to main content
edited body
Source Link
Dale K
  • 26.7k
  • 15
  • 44
  • 73

I am trying to take the response from a GET call and load it into SQL Server via OPENJSONOPENJSON, but i'mI'm having trouble parsing the response.

DECLARE @json NVARCHAR(MAX);
SET @json = N'{
  "LookupServiceType": "GetAssetValues",
  "Items": [
    {
      "id": "19676",
      "value": "{\"AssetCode\":\"TDAACC\",\"Symbol\":null,\"Issue\":\"ACCOUNT #49\",\"Issuer\":\"TD AMERITRADE\"}"
    },
    {
      "id": "19677",
      "value": "{\"AssetCode\":\"RE100\",\"Symbol\":null,\"Issue\":\"APN: 057\",\"Issuer\":\"SAN ANTONIO TX 78212\"}"
    },
    {
      "id": "19908",
      "value": "{\"AssetCode\":\"NALIPO\",\"Symbol\":null,\"Issue\":\"POLICY # L0472\",\"Issuer\":\"NATIONWIDE LIFE\"}"
    }
  ]
}';

I've tried many variations, but I just can't get it right. HereHere are a few things i'veI've tried. AnyAny suggestions would be appreciated.

SELECT *
FROM OPENJSON(@json, '$.Items')  
  WITH (
    Items int '$.id',
    value NVARCHAR(MAX) '$.value',
    AssetCode NVARCHAR(50) '$.value.AssetCode',
    Symbol NVARCHAR(50) '$.value.Symbol',
    Issue NVARCHAR(50) '$.value.Issue',
    Issuer NVARCHAR(50) '$.value.Issuer'
  );
SELECT id,AssetCode,Symbol,Issue, Issuer
FROM OPENJSON(@json)  
  WITH (
    Items NVARCHAR(MAX) '$.Items' AS JSON
  )
OUTER APPLY OPENJSON(Items)
  WITH (
  id INT 'strict $.id',
  value NVARCHAR(MAX) '$.value' AS JSON
  )
  OUTER APPLY OPENJSON(value)
  WITH (
  AssetCode NVARCHAR(50) '$.AssetCode',
  Symbol NVARCHAR(50) '$.Symbol',
  Issue NVARCHAR(50) '$.Issue',
  Issuer NVARCHAR(50) '$.Issuer'
  );

I am trying to take the response from a GET call and load it into SQL Server via OPENJSON, but i'm having trouble parsing the response.

DECLARE @json NVARCHAR(MAX);
SET @json = N'{
  "LookupServiceType": "GetAssetValues",
  "Items": [
    {
      "id": "19676",
      "value": "{\"AssetCode\":\"TDAACC\",\"Symbol\":null,\"Issue\":\"ACCOUNT #49\",\"Issuer\":\"TD AMERITRADE\"}"
    },
    {
      "id": "19677",
      "value": "{\"AssetCode\":\"RE100\",\"Symbol\":null,\"Issue\":\"APN: 057\",\"Issuer\":\"SAN ANTONIO TX 78212\"}"
    },
    {
      "id": "19908",
      "value": "{\"AssetCode\":\"NALIPO\",\"Symbol\":null,\"Issue\":\"POLICY # L0472\",\"Issuer\":\"NATIONWIDE LIFE\"}"
    }
  ]
}';

I've tried many variations, but I just can't get it right. Here are a few things i've tried. Any suggestions would be appreciated.

SELECT *
FROM OPENJSON(@json, '$.Items')  
  WITH (
    Items int '$.id',
    value NVARCHAR(MAX) '$.value',
    AssetCode NVARCHAR(50) '$.value.AssetCode',
    Symbol NVARCHAR(50) '$.value.Symbol',
    Issue NVARCHAR(50) '$.value.Issue',
    Issuer NVARCHAR(50) '$.value.Issuer'
  );
SELECT id,AssetCode,Symbol,Issue, Issuer
FROM OPENJSON(@json)  
  WITH (
    Items NVARCHAR(MAX) '$.Items' AS JSON
  )
OUTER APPLY OPENJSON(Items)
  WITH (
  id INT 'strict $.id',
  value NVARCHAR(MAX) '$.value' AS JSON
  )
  OUTER APPLY OPENJSON(value)
  WITH (
  AssetCode NVARCHAR(50) '$.AssetCode',
  Symbol NVARCHAR(50) '$.Symbol',
  Issue NVARCHAR(50) '$.Issue',
  Issuer NVARCHAR(50) '$.Issuer'
  );

I am trying to take the response from a GET call and load it into SQL Server via OPENJSON, but I'm having trouble parsing the response.

DECLARE @json NVARCHAR(MAX);
SET @json = N'{
  "LookupServiceType": "GetAssetValues",
  "Items": [
    {
      "id": "19676",
      "value": "{\"AssetCode\":\"TDAACC\",\"Symbol\":null,\"Issue\":\"ACCOUNT #49\",\"Issuer\":\"TD AMERITRADE\"}"
    },
    {
      "id": "19677",
      "value": "{\"AssetCode\":\"RE100\",\"Symbol\":null,\"Issue\":\"APN: 057\",\"Issuer\":\"SAN ANTONIO TX 78212\"}"
    },
    {
      "id": "19908",
      "value": "{\"AssetCode\":\"NALIPO\",\"Symbol\":null,\"Issue\":\"POLICY # L0472\",\"Issuer\":\"NATIONWIDE LIFE\"}"
    }
  ]
}';

I've tried many variations, but I just can't get it right. Here are a few things I've tried. Any suggestions would be appreciated.

SELECT *
FROM OPENJSON(@json, '$.Items')  
  WITH (
    Items int '$.id',
    value NVARCHAR(MAX) '$.value',
    AssetCode NVARCHAR(50) '$.value.AssetCode',
    Symbol NVARCHAR(50) '$.value.Symbol',
    Issue NVARCHAR(50) '$.value.Issue',
    Issuer NVARCHAR(50) '$.value.Issuer'
  );
SELECT id,AssetCode,Symbol,Issue, Issuer
FROM OPENJSON(@json)  
  WITH (
    Items NVARCHAR(MAX) '$.Items' AS JSON
  )
OUTER APPLY OPENJSON(Items)
  WITH (
  id INT 'strict $.id',
  value NVARCHAR(MAX) '$.value' AS JSON
  )
  OUTER APPLY OPENJSON(value)
  WITH (
  AssetCode NVARCHAR(50) '$.AssetCode',
  Symbol NVARCHAR(50) '$.Symbol',
  Issue NVARCHAR(50) '$.Issue',
  Issuer NVARCHAR(50) '$.Issuer'
  );
Source Link
keatklein
  • 154
  • 1
  • 1
  • 10

Parsing with OPENJSON

I am trying to take the response from a GET call and load it into SQL Server via OPENJSON, but i'm having trouble parsing the response.

DECLARE @json NVARCHAR(MAX);
SET @json = N'{
  "LookupServiceType": "GetAssetValues",
  "Items": [
    {
      "id": "19676",
      "value": "{\"AssetCode\":\"TDAACC\",\"Symbol\":null,\"Issue\":\"ACCOUNT #49\",\"Issuer\":\"TD AMERITRADE\"}"
    },
    {
      "id": "19677",
      "value": "{\"AssetCode\":\"RE100\",\"Symbol\":null,\"Issue\":\"APN: 057\",\"Issuer\":\"SAN ANTONIO TX 78212\"}"
    },
    {
      "id": "19908",
      "value": "{\"AssetCode\":\"NALIPO\",\"Symbol\":null,\"Issue\":\"POLICY # L0472\",\"Issuer\":\"NATIONWIDE LIFE\"}"
    }
  ]
}';

I've tried many variations, but I just can't get it right. Here are a few things i've tried. Any suggestions would be appreciated.

SELECT *
FROM OPENJSON(@json, '$.Items')  
  WITH (
    Items int '$.id',
    value NVARCHAR(MAX) '$.value',
    AssetCode NVARCHAR(50) '$.value.AssetCode',
    Symbol NVARCHAR(50) '$.value.Symbol',
    Issue NVARCHAR(50) '$.value.Issue',
    Issuer NVARCHAR(50) '$.value.Issuer'
  );
SELECT id,AssetCode,Symbol,Issue, Issuer
FROM OPENJSON(@json)  
  WITH (
    Items NVARCHAR(MAX) '$.Items' AS JSON
  )
OUTER APPLY OPENJSON(Items)
  WITH (
  id INT 'strict $.id',
  value NVARCHAR(MAX) '$.value' AS JSON
  )
  OUTER APPLY OPENJSON(value)
  WITH (
  AssetCode NVARCHAR(50) '$.AssetCode',
  Symbol NVARCHAR(50) '$.Symbol',
  Issue NVARCHAR(50) '$.Issue',
  Issuer NVARCHAR(50) '$.Issuer'
  );