gpt4 book ai didi

java - 如何使用 Java 从可变 Json 文件创建 Sql 语句

转载 作者:行者123 更新时间:2023-11-29 13:45:12 25 4
gpt4 key购买 nike

我正在尝试从 Json 文件创建 SQL 表,该文件是按照 OpenApi 规范编写的。这是我必须转换的输入文件的示例:

     "definitions": {
"Order": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"petId": {
"type": "integer",
"format": "int64"
},
"quantity": {
"type": "integer",
"format": "int32"
},
"shipDate": {
"type": "string",
"format": "date-time"
},
"status": {
"type": "string",
"description": "Order Status",
"enum": [
"placed",
"approved",
"delivered"
]
},
"complete": {
"type": "boolean",
"default": false
}
},
"xml": {
"name": "Order"
}
},
"Category": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"name": {
"type": "string"
}
},
"xml": {
"name": "Category"
}
},

我的目标是创建两个名为“Order”和“Category”的表,它们的列必须是“properties”字段中列出的列。我正在使用 Java。输入文件是可变的,所以我使用 Gson 来读取它。我设法得到这样的输出:

    CREATE TABLE ORDER
COLUMNS:
id->
type: integer
format: int64

petId->
type: integer
format: int64

quantity->
type: integer
format: int32

shipDate->
type: string
format: date-time

status->
type: string
description: Order Status
Possibilities:
-placed
-approved
-delivered

complete->
type: boolean
default: false

CREATE TABLE CATEGORY
COLUMNS:
id->
type: integer
format: int64

name->
type: string

我被困在这里,试图将“类型”和“格式”字段转换为 PostgreSQL 或 MySQL 可以读取的类型。此外,由于嵌套的存在,很难直接在代码上工作以获得可读的 SQL 字符串。所以我认为处理输出并将其“翻译”成 SQL 可能是个好主意。是否有任何类\包可以帮助我阅读这样的文件?我试图避免使用数千个 IF ELSE 条件。谢谢。

最佳答案

您的作业涉及两个阶段。

一个是“解析”给定的 JSON 对象并理解内容

第二个是将解析后的内容“翻译”成有效的 SQL 查询

在这里,您的 Java 程序应该作为一种翻译引擎工作。

为了解析 JSON 对象,可以使用许多 java 库。要将解析的 json 转换为 SQL 查询,您可以简单地使用基本的字符串操作方法。

关于java - 如何使用 Java 从可变 Json 文件创建 Sql 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49615719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com