好的,知道思路了,我想请问下,获取sql中collect的结果值,content中只能用这种格式写吗?图一中最下边图是我存在数据库中的varchar类型,,再进行导入时候,dataTemplate显示的是【object,object】,如果我数据库中{{json .}}不带双引号的话,导入接口就会报错,图二我是用JSON.toJSONString 处理的参数


你现在的问题是规则的 sink 结果和预期不符吗?麻烦贴一下你的规则和当前的 sink 结果与预期的 sink 结果。

是预期的结果,问题是我用api导入功能,把我action导入不报错,页面状态显示异常,网页 datatemplate显示不对
“Stopped: read properties map[dataTemplate:map[action:map[cmd:1] content:{{json.}} type:action] qos:0 sendSingle:true server:tcp://127.0.0.1:1883 topic:/edgex/action] fail with error: 1 error(s) decoding:\n\n* ‘dataTemplate’ expected type ‘string’, got unconvertible type ‘map[string]interface {}’, value: ‘map[action:map[cmd:1] content:{{json.}} type:action]’.”


麻烦贴一下你的 API 导入具体的 HTTP Method/URL 和对应的 request body 与 response body



这里 response data 并没有报错呀,你具体想问什么问题呢?

导入的规则跑不起来,格式不对。看起来是字符串转义的问题

目前可以先通过 eKuiper 文档
上传文件的方法将 content 内容事先写入到一个文件,然后将文件传入到 ekuiper 内,
然后在导入配置时通过 file 参数 数据导入导出管理 | eKuiper 文档
指定对应的配置文件来进行导入。

对,应该是的,,主要就是后边那个{{json .}}解析不对,其他都没问题

请问还有别的方法能取到sql中collect的值吗,不用{{json .}}

图2里面,”dataTemplate“ 的值不是字符串,格式不对。。

转义的办法,用 jetbrain 系 IDE 开一个json文件,{“content”:"
"} 把你的内容放到后面的双引号里,自动完美转义

试试 dataTemplate 填如下的值:

“{"action":{"cmd":1},"type":"action","message":"测试打开风机","content":{{.target}}}”

可以了,,这样可以了,整体加个双引号就可以了,,想请教下{{json .}}和{{.target}}有啥区别吗?而且第一种写法json后边必须还要加个空格

格式好奇怪,第一种是按.target写法

都是标准的 Go template的格式。可以利用 chatgpt 帮忙生成再调试 数据模板 | eKuiper 文档