ホームページ > データベース > mysql チュートリアル > SQL Server のオブジェクト配列を JSON の値の配列に変換するにはどうすればよいですか?

SQL Server のオブジェクト配列を JSON の値の配列に変換するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-09 18:56:41
オリジナル
1019 人が閲覧しました

How to Convert a SQL Server Array of Objects to an Array of Values in JSON?

SQL Server 2016 JSON 変換: オブジェクト配列を値配列に変換する

SQL Server 2016 の JSON 機能は強力ですが、オブジェクトの配列を値の配列に変換するには、特定のアプローチが必要です。 課題と解決策を説明しましょう。

次のシナリオについて考えてみましょう:

<code class="language-sql">CREATE TABLE #temp (item_id VARCHAR(256))

INSERT INTO #temp VALUES ('1234'),('5678'),('7890')

SELECT * FROM #temp

-- Initial JSON conversion attempt
SELECT (SELECT item_id 
FROM #temp
FOR JSON PATH,root('ids')) </code>
ログイン後にコピー

これにより、オブジェクト:

の JSON 配列が生成されます。
<code class="language-json">{
    "ids": [{
        "item_id": "1234"
    },
    {
        "item_id": "5678"
    },
    {
        "item_id": "7890"
    }]
}</code>
ログイン後にコピー

ただし、目標は :

の JSON 配列です。
<code class="language-json">{
  "ids": [
    "1234",
    "5678",
    "7890"
  ]
}</code>
ログイン後にコピー

重要なのは、中間ステップとして XML を活用することです。

<code class="language-sql">SELECT  
JSON_QUERY('[' + STUFF(( SELECT ',' + '"' + item_id + '"' 
FROM #temp FOR XML PATH('')),1,1,'') + ']' ) ids  
FOR JSON PATH , WITHOUT_ARRAY_WRAPPER </code>
ログイン後にコピー

このクエリは、最初に値を表す XML 文字列を構築し、次に STUFF を使用して先頭のカンマを削除し、最後に結果を角括弧で囲んで JSON 配列を形成します。 FOR JSON PATH, WITHOUT_ARRAY_WRAPPER 句は、出力が単一のオブジェクトを含む配列ではなく、値の単一の JSON 配列であることを保証します。 これにより、目的の JSON 構造が効率的に実現されます。

以上がSQL Server のオブジェクト配列を JSON の値の配列に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート