Nosql 通过HTTP在XDB和WSO2流处理器的有效负载中插入双引号

Nosql 通过HTTP在XDB和WSO2流处理器的有效负载中插入双引号,nosql,wso2,influxdb,wso2sp,Nosql,Wso2,Influxdb,Wso2sp,我正在开发一个流进程,它可以将MySQL数据库中的信息解析为NoSQL数据库(使用XDB)。 此时,我可以通过HTTP请求发送NoSQL查询,但前提是我要发送整数值。 问题是,当我想发送字符串值时,我不能在我的“文本”负载中使用双引号,因为它会关闭我的属性。 如果在字符串值周围使用单引号,XDB将返回一个错误: [2018-12-28_11-07-18_302] INFO {org.wso2.siddhi.core.stream.output.sink.LogSink} - lo

我正在开发一个流进程,它可以将MySQL数据库中的信息解析为NoSQL数据库(使用XDB)。 此时,我可以通过HTTP请求发送NoSQL查询,但前提是我要发送整数值。 问题是,当我想发送字符串值时,我不能在我的“文本”负载中使用双引号,因为它会关闭我的属性。 如果在字符串值周围使用单引号,XDB将返回一个错误:

    [2018-12-28_11-07-18_302] INFO     {org.wso2.siddhi.core.stream.output.sink.LogSink} - log : Event{timestamp=1545991638301, data=[{"error":"unable to parse 'SEQTIME value=267,x_date_create={1}': invalid boolean"} ], isExpired=false} (Encoded) 
这是我的代码:

@sink(type='http-request',
publisher.url='http://localhost:8086/write?db=bd_sensor_values',
method='POST',
headers="'Authorization: Basic XXXXX','Content-Type: application/x-www-form-urlencoded','cache-control: no-cache','Host:localhost:8086'",
sink.id="httpRequest_id",
@map(type='text', @payload("SEQTIME value={{id}},x_date_create={{x_date_create}}")))
define stream httpRequest (id int, x_date_create string);
问题在@payload属性中,带有x_date_create。 我试图对我的双引号进行编码,但没有成功(可能是我做错了?)


有什么想法吗?谢谢大家!

在字符串中使用双引号和转义引号。参见以下示例:


您可以使用以下方法向结果中添加双引号

@payload(""" "SEQTIME value"="{{id}}","x_date_create"="{{x_date_create}}" """)))

我已经试过了。WSO2流处理器给了我一个语法错误。我认为Siddhi不理解转义的概念。你需要在使用的语言/应用中找到正确的语法,这将为InfluxDB创建正确的转义字符串。Anusha Jayasundara找到了如何创建我的有效负载。谢谢你的时间。它工作得很好,谢谢你!我只是需要修改一下,因为您的语法在开始时添加了双引号。我这样写:
“SEQTIME value=“{{id}”,x_date\u create=“{{x_date\u create}”
@payload(""" "SEQTIME value"="{{id}}","x_date_create"="{{x_date_create}}" """)))