【问题标题】:PHP JSON Decoding String Issue/ Facebook messengerPHP JSON解码字符串问题/ Facebook Messenger
【发布时间】:2017-02-14 10:39:18
【问题描述】:

我有一个看起来像这样的 JSON,我使用了 json_decode(file_get_contents('php://input'),true);把它变成一个数组

{
"object": "page",
"entry": [
    {
        "id": "",
        "time":,
        "messaging": [
            {
                "sender": {
                    "id": ""
                },
                "recipient": {
                    "id": ""
                },
                "timestamp":,
                "message": {
                    "mid": "",
                    "seq": "",
                    "text": "STORE, POSTAL CODE"
                }
            }
        ]
    }
]

}

在 JSON 被解码后,我想获取 JSON 的文本部分,所以我做到了

$message = ($post['entry'][0]['messaging'][0]['message']['text']
$query = explode(',', $message);

然后我在一些 SQL 查询中使用了 $query[0] 和 $query[1]。

由于某种原因,当我将 $message 硬编码为 $message = 'store, postal'; 这样的文本时它会起作用,但当我使用爆炸时不会。

仅供参考,这个 json 来自 Facebook,因为我正在使用 messenger api。

【问题讨论】:

  • 您是否尝试先打印 $post['entry'][0]['messaging'][0]['message']['text'] 中的内容?如果没有,那么我建议先检查一次,因为爆炸肯定不会失败。

标签: php json facebook api messenger


【解决方案1】:
  1. 检查 $post['entry'][0]['messaging'][0]['message']['text'] 给你“商店,邮政编码”。
  2. 我看到 json 包含大写字符串,而您的示例是小写的。也许这在您的代码中很重要。

【讨论】:

  • 我查看了 $post 返回的内容,这是预期的,“商店,邮政编码”只是作为占位符,但真正应该期待的是,'somestore , postalcode' 小写,我也有一些我之后做的文本清理。此外,我在对 $message 进行硬编码时对其进行了测试,一切都按我的预期工作,只是当我将它与传入的文本分开时,事情就搞砸了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-07-18
  • 1970-01-01
  • 1970-01-01
  • 2013-02-18
  • 2013-08-18
  • 1970-01-01
  • 2023-03-05
相关资源
最近更新 更多