2017-02-15 4 views
0

次のJSONコードがあります。 OPENJSONを使用してSQLデータベースに値をプルしますが、払い戻しオブジェクトのパスに問題があります。tSQL-OPENJSONを使用したJSONオブジェクトの移動

"transactions"オブジェクトの "amount"値を取得しようとしています(期待値は298.47になるはずです)。

それは$ .refund [0] .transactionsでなければならないSQLコード(現在はNULL値を返す)JSONコードを再フォーマットした

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

あなたはSQL Serverのバージョン – TheGameiswar

+0

を追加してください。期待通りの結果と実際の結果のように多くの情報を追加できますか? SQLServerのバージョン。最新版が何であれ。私はそれが大きな違いをもたらすとは思わない。 – james5

+0

'transactions'も配列なので、' refund'配列にどの 'transaction'を指定する必要があります。あなたのパスは '$ .refund [0] .transactions [0] .amount' – JNevill

答えて

0

[0] .amount

アクセスするアレイオブジェクトに応じて、増分と減算を行います値を変更します。根本的な原因はJSON階層を理解することであり、JNevilはいくつかの優れたリソースを提供しています

関連する問題