JSON形式のデータがあります。以下の例を確認できます:SQL ServerでJSONデータを格納、フィルタリング、取得する方法
[
{
"firstName": John,
"lastName": Smith,
"cars": [
{
"id": 0,
"name": "BMW"
},
{
"id": 1,
"name": "Mercedes"
},
{
"id": 2,
"name": "Audi"
}
]
}
{
"firstName": Adam
"lastName": Sheen,
"cars": [
{
"id": 0,
"name": "Ferrari"
},
{
"id": 1,
"name": "Mercedes"
}
]
}
]
私はこのデータを何らかの形で保存し、それをフィルタリングできる必要があります。結果はJSON形式でなければなりません。これは、プロセス全体の次のステップで使用されるためです。私のASP.NETアプリケーションはSQL Server(2012および2016)を使用します。
「Ferrari」という名前の車を持っているすべてのユーザーを取得したいとします。私はすでに、研究のためにいくつかの時間を費やしている
[
{
"firstName": Adam
"lastName": Sheen,
"cars": [
{
"id": 0,
"name": "Ferrari"
},
{
"id": 1,
"name": "Mercedes"
}
]
}
]
を、私は、Microsoftが保存し、SQL Server 2016年にJSON形式を照会するためのサポートが導入されていることを知っているが、それは取得することはできません:私はそのようになり、結果を取得する必要があります階層的な結果。これはリレーショナルデータベースなので、結果はテーブルとして「フラット」になります。 JSONは動的な構造を持つことができるので、データベース内のテーブルへのJSONのマッピングもできません。車に乗っている人のリスト、または書籍を持った書店などです。
私はMongoDBのようなNOSQLデータベースを使用することができますが、私のプロジェクトでは追加のデータベースを避けたいと思います。
このような問題のためのベストプラクティスと.NETでの実行方法を知りたいと思います。
ありがとうございます。私がdbに格納するJSONは動的構造を持つことができるため、最初の部分(dbをテーブルを作成する部分)は私の場合は不可能です。私はどのテーブルが私のために建てられるのか予測できません。要約すると、JSONは1つの列に1つのレコードとしてDBに格納する必要があります。 2番目の部分は私にとって本当に重要です。結果をJSON形式で返すことができるかどうかはわかりませんでした。それは私の多くの助けになる:)同じ結果を返すようにSELECTクエリを変更しようとすることができますが、あなたは1つだけのテーブルがある場合など。 JsonDataTableにはJSONの例がすべて含まれています。 – Ellbar
JSONをいくつかの列に保存し、予測できない構造を持つかもしれないが、フィルタリングされたデータを取得する必要がある場合 - パーサーの種類が必要で、SQLでC#またはPHPやその他の言語実際、いくつかのテーブルをJSONに変換することはできますが、このシナリオでは役に立ちません。 – gofr1
私は1つのアイデアを得た、私は明日それをテストすることができ、私の答えにこれを追加します。 – gofr1