今天在vfp对接企业微信接口下载JSON时,发现JSON的键是ORDER,这下生成的DAL_CA类发现保存不了,
报:连接错误: [Microsoft][ODBC SQL Server Driver][SQL Server]关键字 'ORDER' 附近有语法错误。
数据表的结构长这样
获取的JSON长这样
{
"errcode": 0,
"errmsg": "ok",
"department": [
{
"id": 2,
"name": "广州研发中心",
"name_en": "RDGZ",
"department_leader":["zhangsan","lisi"],
"parentid": 1,
"order": 10
},
{
"id": 3,
"name": "邮箱产品部",
"name_en": "mail",
"department_leader":["lisi","wangwu"],
"parentid": 2,
"order": 40
}
]
}
order 是SQL保留字,在处理SQL指令时要套上外套,像这样[order].
那将生成的DAL_CA修改一下,改成自定义指令。
测试一下代码,cReturn为JSON
oDal_department =NEWOBJECT("Dal_department","Dal_department.prg")
*--参数1:数据所在KEY,参数2:0:自动 1 新增 2 修改
IF !oDal_department.parsejson(cReturn,"department",1)
?oDal_department.msg
RETURN
ENDIF
IF !oDal_department.save()
?oDal_department.msg
RETURN
ENDIF
?"OK"
保存成功。
因为json里面有一个department_leader是个数组,我把它不展开了,直接用JSON存到表字段。
oReader.parsejson第三个参数进行数组转换为JSON。