2017-05-03 9 views
0

SQLクエリを動的に生成したい。私は、このツールにJsonオブジェクトをSQLテーブルに変換する

http://querybuilder.js.org/demo.html 

を発見したと私は、次のJSONオブジェクトを持っている:

{ 
    "condition": "AND", 
    "rules": [ 
    { 
     "id": "name", 
     "field": "name", 
     "type": "string", 
     "input": "text", 
     "operator": "equal", 
     "value": "zura" 
    }, 
    { 
     "condition": "OR", 
     "rules": [ 
     { 
      "id": "category", 
      "field": "category", 
      "type": "integer", 
      "input": "select", 
      "operator": "equal", 
      "value": "1" 
     }, 
     { 
      "id": "price", 
      "field": "price", 
      "type": "double", 
      "input": "number", 
      "operator": "equal", 
      "value": "123" 
     } 
     ] 
    }, 
    { 
     "id": "in_stock", 
     "field": "in_stock", 
     "type": "integer", 
     "input": "radio", 
     "operator": "equal", 
     "value": "1" 
    }, 
    { 
     "condition": "AND", 
     "rules": [ 
     { 
      "id": "category", 
      "field": "category", 
      "type": "integer", 
      "input": "select", 
      "operator": "equal", 
      "value": "2" 
     }, 
     { 
      "id": "in_stock", 
      "field": "in_stock", 
      "type": "integer", 
      "input": "radio", 
      "operator": "equal", 
      "value": "0" 
     } 
     ] 
    } 
    ] 
} 

は、今私が正しく、このJSONデータを保存するために、SQLテーブルを生成します。 テーブルを生成する方法はありますか?私にリンクを与えてください、または同じテーブルを作成するのを手伝ってください。

+1

キー値がどのようにSQLデータ型、つまり 'VARCHAR'、' TEXT'など(https://www.w3schools.com/sql/sql_datatypes_general.asp)に変換されるのかわかりません。あなたは 'CREATE TABLE'ステートメント(https://www.w3schools.com/sql/sql_create_table.asp)を使うことができますが、あなたのJSON値に基づいて、私はあなたが有効なSQLテーブルを作成しているとは思いません。たとえば、データ: 'rules [" type "] = string'から' string'は有効なSQLデータ型ではなく、 'VARCHAR(200)'は有効です。オブジェクトに基づいてテーブルを動的に生成する場合は、キー値として適切なデータ型が必要と思われます。 – natureminded

+0

データ型は測定しません。まず、JSONデータを保存するためのテーブル(May Beテーブル)構造体が必要です。いつでもテーブルのデータ型を変更できます。 –

+0

SQLテーブルの構造を構築するには、まずCREATE TABLEを実行する必要があります(最後のコメントのリンクを参照)。テーブルを作成するときは、その構造を定義する必要があります。その構造にはデータ型の定義が必要です。 IEの場合、SQLテーブルは、どのようなタイプのデータ(数値、テキストなど)を知る必要があります。私が知る限り、取得しようとしているプロパティのデータ型を設定せずにSQLテーブルを作成することはできません。テーブルが作成されるときの要件です。多くの人がMySQL Workbenchを使用してビジョンを草稿し、プログラムはそれらのSQLテーブルを吐き出します。 – natureminded

答えて

0

あなたのJSONデータは、このような自己参照テーブルを作成するための再帰的SQL function.You最初の必要性を使用してデコードする必要があります

CREATE TABLE jsonCondition(
ConditionId INT IDENTITY, 
ParentCondotionId INT , 
Id NVARCHAR(20), 
Field NVARCHAR(20), 
Type NVARCHAR(20), 
Input NVARCHAR(20), 
Operator NVARCHAR(20), 
Value NVARCHAR(20) 
) 

その後、SQLに私の他のJSON再帰的な変換を参照してください。 How to generate hierarchical JSON data with Microsoft SQL Server 2016?

あなたはまだ私は知っているようで、変換の難しさを持っている場合::で My linked in Profile

0

これはかなり基本的ですが、うまくいくはずです。テーブル名をあなたのために何かに置き換えます。フィールドのサイズはかなり広いですが、追加情報を入力しない限り、入力値がどのようになるか分かりません。

CREATE TABLE [NameYourTableHere] 
(Name VARCHAR(MAX), 
Category BIGINT, 
Price DECIMAL(19,2), 
In_Stock INT) 
+0

あなたのテーブル構造は正しくありません。私のJSONをもう一度見ることができますか? –

関連する問題