# 替换属性

解释说明

一般当JSON中的字段和对应数据库表中的字段不一致时,需要用到属性替换功能; 该功能在本站三种操作模式上都适用

# 快速测试

# create table 操作模式

假设现有一段JSON数据,如下所示:

{
  "id": "123",
  "userName": "pdx",
  "passWord": "123456",
  "@table": "user"
}

需求:数据库字段为user_namepass_word,使用属性替换生产建表SQL语句

页面实际操作如下:

输出SQL结果如下显示:

create table `user`(
  `id` varchar(12),
  `pass_word` varchar(30),
  `user_name` varchar(24)
);

# update where 操作模式

假设现定义了一个更新用户信息的接口,其中接口接收的Body体的JSON数据如下(按照id修改):

{
  "id": "123",
  "username": "pdx",
  "password": "123456"
}

需求:数据库对应的字段分别为:user_namepass_word,并将信息修改为如下:

{
    "username":"admin",
    "password":"123456"
}

页面实际操作如下:

输出SQL结果如下显示:

update
  `user`
set
  `pass_word` = '123456',
  `user_name` = 'admin'
where
  `id` = '1';

# insert into 操作模式

假设现有一段JSON数据,需要将这些数据初始化到数据库表中,数据如下:

{
    "id": "320500000",
    "text": "苏州工业园区",
    "value": "320500000",
    "value": "320500000",
    "children": [         
        {
            "id": "320505006",
            "text": "斜塘街道",
            "value": "320505006",
            "children": []
        },
         {
            "id": "320505007",
            "text": "娄葑街道",
            "value": "320505007",
            "children": []
        },
         {
            "id": "320505009",
            "text": "唯亭街道",
            "value": "320505009",
            "children": []
        },
         {
            "id": "320505010",
            "text": "胜浦街道",
            "value": "320505010",
            "children": []
        },
        {
            "id": "320505012",
            "text": "金鸡湖街道",
            "value": "320505012",
            "children": []
        }
    ]
}

需求:将上述JSON数据初始化到数据库表中,但该数据中的字段与需要转译的数据库表中的字段有所差别,假设表中的字段名称分别为 idvalue <===> dic_keytext <===>dic_value且从数据格式上看,是包含父子级嵌套的, 而数据库中也包含pid属性,生成可执行的插入SQL脚本

具体操作如下:

输出的SQL如下所示:

insert into
  `dic` (`dic_key`, `pid`, `dic_value`, `id`)
values
  ('320500000', '0', '苏州工业园区', '320500000'),
  ('320505006', '320500000', '斜塘街道', '320505006'),
  ('320505007', '320500000', '娄葑街道', '320505007'),
  ('320505009', '320500000', '唯亭街道', '320505009'),
  ('320505010', '320500000', '胜浦街道', '320505010'),
  ('320505012', '320500000', '金鸡湖街道', '320505012');