2017-02-15 5 views
0

У меня есть следующий код JSON. Я вытаскиваю значения в базу данных SQL с помощью OPENJSON, но у меня возникают проблемы с пути для объекта Refund.Перемещение объектов JSON с tSQL - OPENJSON

Я пытаюсь вытащить значение «сумма» в объект «транзакции» (поэтому ожидаемое значение должно быть 298.47).

SQL кода (в настоящее время возвращает только нулевые значения)

OPEN(json) 
WITH( 
    OtherJSONstuff varchar '$otherjsonstuff' 
    Refund   int  '$.refund[0].transactions.amount' <what should this be 

JSON код

"otherjsonstuff": othervalues 
"otherjsonstuff": othervalues 
"object": [ 
    { 
     "id": 212, 
    "items": [ 
     { 
      "id": 151, 
      "quantity": 3, 
      "item_id": 926, 
      "subtotal": 30.0, 
      "tax": 0.0, 
      "item": { 
      "id": 926, 
      "quantity": 3, 
      "price": "10.00", 
      "product_id": 934, 
      "properties": [], 
      "discount": "0.00", 
      "tax": [] 
      } 
     } 
     ], 
     "action": [ 
     { 
      "id": 537, 
      "amount": "298.47", --this is the line I need 
      "kind": "refund", 
      "created": "2016-12-13", 
      "location_id": null, 
      "parent_id": 537, 
     } 
     ], 
    } 
    ], 
+0

Не могли бы вы добавить дополнительную информацию, например, ожидаемый результат и фактический результат. Также добавьте версию SQLserver – TheGameiswar

+0

Готово, и я честно не знаю, Версия SQLServer. Независимо от новейшей версии. Я не думаю, что это будет иметь большое значение, хотя. – james5

+0

Поскольку 'transaction' также является массивом, вам нужно указать, какая' транзакция' вы хотите в вашем массиве 'refund'. Возможно, ваш путь должен быть '$ .refund [0] .transactions [0] .amount' – JNevill

ответ

0

После переформатировать код JSON,

она должна быть $ .refund [0] .transactions [0] .amount

Зависит от объекта массива, к которому вы хотите получить доступ, просто увеличивайте и уменьшайте возвращает значения. Основная причина заключается в понимании иерархии JSON, и JNevil предоставил вам несколько хороших ресурсов.

 Смежные вопросы

  • Нет связанных вопросов^_^