数据以 JSON 对象的形式传入,如何解析?

Posted

技术标签:

【中文标题】数据以 JSON 对象的形式传入,如何解析?【英文标题】:Data is coming in as a JSON object, how to parse? 【发布时间】:2020-07-16 00:34:15 【问题描述】:

我正在尝试构建一个 Zap,它通过 Unbird 获取客户反馈并发送一条 Slack 消息,这对我组织中任何阅读它的人来说都是有意义的。

目前正在从 Unbird 获取客户反馈数据到 Zapier,它看起来像一个 javascript 对象,如下所示:


  0: website
  1: jon@email.com
  2: Jon
  3: Smith
  4: You guys have a great website, but should add dark mode.

我想向 Slack 发送一条消息,内容类似于

Jon Smith (jon@email.com) just sent you Website feedback: You guys have a great website, but should add dark mode.

我可以选择“入口属性值”并将其发送给 Slack,如下所示:

website, jon@email.com, Jon, Smith, You guys have a great website, but should add dark mode.

我尝试使用 Zapier 的 Split 函数,用逗号作为分隔符,但没有成功拆分它。我尝试使用 Zapier 代码 sn-p 来隔离单个值,但是当我执行 myobj.0 时,它不起作用。这可能是一个数组吗?我认为您甚至不能在 js 中为键名提供数字。太久没写代码了。

我尝试使用 JSON.stringify 使其成为字符串,但在 Zapier 代码 sn-ps 中,输出必须是一个对象,所以我又被一个愚蠢的对象困住了!我只想要文本,我可以使用文本,或者以某种方式调用对象中的各个值以供以后使用。

救命!

【问题讨论】:

假设 json 键总是会匹配网站、电子邮件、名称的值。也许你可以使用模板文字来完成这个:const responseStr = ``$json[2] json[3] ($json[1]), just sent you $json[0] feedback: $json[4]`` 有什么问题? @CaptainMhmdrz_A 我不知道如何将对象拆分为不同的部分,以便我可以将值插入 Zap 中句子的不同部分以发送到 Slack。 【参考方案1】:

如果客户反馈已经作为一个对象传入,其中这些键用逗号分隔,您只需返回输出,这应该拆分为每个值的单独条目。

在你的情况下 -

var obj =   0: "website", 1:"jon@email.com", 2: "Jon", 3: "Smith",4:"You guys have a great website, but should add dark mode";output = [key:obj];   

【讨论】:

以上是关于数据以 JSON 对象的形式传入,如何解析?的主要内容,如果未能解决你的问题,请参考以下文章

后台以json数据形式返回之后前台接受的方法以及之后的解析总结

SpringBoot常用注解解析

如何解析Mysql中的JSON字符串?

来讲讲怎样获取到url上所有参数并以对象形式保存,再讲讲JSON解析与序列化

如何使用 sed 作为守护程序或服务来解析传入的 JSON 字符串?

JSON数据格式解析