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 데이터를 저장하기 위해 Table (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을 다시 볼 수 있습니까? –