2016-03-15 36 views
1

我们使用RTI webhook发布消息通知以将其存储在Cloudant DB中。我们将{{message}}参数传递给POST调用主体。在存储时,我们注意到每quote(")之前的"/"字符。这似乎是一个错误,因为这会使JSON在后期阶段无效。下面是什么{{message}}包含在我们的例子中的一个例子bluemix IOT实时洞察webhook {{message}}包含无效字符

“{\” d \ “:{\” Energy_Consumption \ “150 \” 压力\ “:36.84546626947179,\” water_usage \“: 1640.0274074248778,\ “TEMP \”:45},\ “TS \”:\ “2016-03-15T06:48:02.320 + 0000 \”,\ “ruleContent \”:{\ “ID \”:\“J4jn6Wqv \ “,\”contextSchemas \“:[],\”ruleCondition \“:\”IOT_DeviceSchema.d.temp> 40 AND IOT_DeviceSchema.d.pressure < 80 AND IOT_DeviceSchema.d.Energy_Consumption> 100 \“,\”messageSchemas \ “:[\” IOT_DeviceSchema \ “],\” 作业ID \ “:\” tOXtlQLA \” \ “名称\”:\ “Device_Alert \”,\ “严重性\”:2,\ “动作\”:[ \ “Xfy2CCx6 \”],\ “变换\”:[],\ “目的地\”:\ “tenant.228e9515-9a62-448a-ba9a-a570000ba619.ruleOutput \”},\ “DEVICEID \”:\“ftkgac :IOTsample_devicetype:Device03 \“}”

+0

webhook操作中使用的内容类型是什么? – bryantsai

+0

内容类型在webhook信息下设置为application/json。虽然没有设置其他标题。 –

回答

0

{{message}}被嵌入到webhook json主体中,这就是为什么它被编码。

如果webhook服务器本身是一个java程序或其他人可以从一个字符串解析json,没有问题。 IFTTT,Node-red,requestbin,Maximo Web服务器是解析正确发生的示例。

在这种情况下,webhook正在用于调用云端API将webhook主体直接保存为云文档。转义的字符串直接保存到cloudant db,不需要任何解析。

另一种选择是在保存到cloudant之前通过解析器运行此操作。

我们将进一步调查以了解我们可以在RTI方面做些什么。

我可以问你想在“后期”中将它保存在云中之后做什么?当你通过java/js得到这个消息时,可以解析消息来纠正json体。

+0

你说 “另一种选择是在保存到云彩之前通过解析器运行这个” 我不认为这个选项是可行的。 RTI提供的唯一接口是webhook。我必须调用API,无论是云计算还是我自己的。如果你的意思是我应该编写一个API来解析消息,然后再发送给cloudant,那么我认为它会破坏快速实现任何应用程序的目的。 RTI应该能够将正确的JSON发送到POST API,而不管消费者。 –

+0

无论如何,我的消费者对云数据的预测分析服务部署了SPSS模型。该服务是一个Web应用程序的接口,可根据模型预测一些事件。 –

+0

你可以试试SPSS模块从cloudant获取数据时,它可以得到正确的Json对象吗?我们希望这不会阻止你。同时我们正在为您的案例提供解决方案。 – serenabi

相关问题