簡體   English   中英

將Json對象轉換為SQL表

[英]Convert Json Object To SQL Table

我想動態生成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"
        }
      ]
    }
  ]
}

現在我想生成SQL表,以便正確保存這個JSON數據。 有沒有辦法生成表,如果是的請給我鏈接或請幫我創建相同的表

這是非常基本但應該有效。 將表名替換為適合您的表名。 字段大小相當寬,但除非您提供其他信息,否則我不知道您的輸入值是什么。

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

您的Json數據需要使用遞歸SQL函數進行解碼。您首先需要創建一個這樣的自引用表:

    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) 
)

那么請參考我的其他json recursive轉換為SQL: 如何使用Microsoft SQL Server 2016生成分層JSON數據?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM