【问题标题】:How to decode a json object如何解码一个json对象
【发布时间】:2016-08-17 06:05:46
【问题描述】:

这对某些人来说可能很简单,但对我来说却是一个挑战。好吧,从文档中,我在 POST 请求的正文中获取了 JSON 对象。格式如下图。

当他们没有给出 json 对象的变量名时,我该如何解码 json 对象。我以为我会得到一个变量名,以便我以这种方式解码$data = json_decode($jsonFromSource);

我想不出一种方法来做同样的事情,有人吗?谢谢。

来自文档的方向:POST 请求将被发送到企业提供的 URL。以下将传递的 POST 参数如下
上面传递的参数将包含在 POST 请求正文中的 JSON 对象中。
链接到简要文档https://app.kopokopo.com/push_api

{
   "service_name" : "MPESA",
   "business_number" : "888555",
   "transaction_reference" : "DE45GK45"
   "internal_transaction_id" : 3222
   "transaction_timestamp" : "2013-03-18T13:57:00Z"
   "transaction_type" : "Paybill"
   "account_number" : "445534"
   "sender_phone" : "+254903119111"
   "first_name" : "John"
   "middle_name" : "K"
   "last_name" : "Doe"
   "amount" : 4000
   "currency" : "KES"
   "signature" : "dfafwerewKkladaHOKJdafdf"
}

【问题讨论】:

  • 最初如何获取数据?
  • 我将一个 url 传递给仪表板,他们将从那里向我发送数据。
  • app.kopokopo.com/push_api 这里是文档的链接。请看看@RamRaider
  • @bmm $data = file_get_contents ('your url here'); $json = json_decode($data);
  • @BenseidSeid your url here 部分是什么网址?

标签: php json rest


【解决方案1】:

我不确定您最初是如何检索数据的 - 也许这会有所帮助?

$url='http://www.example.com/api/feed.json';
$data=file_get_contents( $url );
$json=json_decode( $data,true );
foreach( $json as $param => $value ) echo $param, $value, '<br />';

【讨论】:

  • 您好@RamRaider 问题我没有指向馈线网址的链接。这是简短的文档。请看app.kopokopo.com/push_api谢谢。
  • @bmm 看看文档中的例子
  • 这与其说是“我如何解码 json 对象”,不如说是“如何使用大量参数发出 curl POST 请求并解码响应”
  • 你是说 curl 的例子吗? @BenseidSeid ...从中获取值是我的问题。老实说,我不知道该怎么做。
【解决方案2】:

KOPOKOPO 将向您推送以下不是 JSON 的有效负载

"service_name=M-PESA&business_number=888555&transaction_reference=DE45GK45&internal_transaction_id=3222&transaction_timestamp=2013-03-18T13%3A57%3A00Z&transaction_type=Paybill&account_number=445=K.&last_name=Doe&amount=4000&currency=KES"

然后你可以像这样编码:

$callbackJSONData = json_encode($_POST);

结果将是...

{"service_name":"M-PESA","business_number":"888555","transaction_reference":"DE45GK45","internal_transaction_id":"3222","transaction_timestamp":"2013-03-18T13:57:00Z","transaction_type":"Paybill","account_number":"445=K.","last_name":"Doe","amount":"4000","currency":"KES"}

$jdata = json_decode($post,true);

   /*
   * We get details from $_POST only
   */
   $first_name = $jdata["first_name"];
   $middle_name = $jdata["middle_name"];
   $last_name = $jdata["last_name"];
   $paid_amount       = $jdata["amount"];
   $paying_phone_number = str_replace('+254', '0', preg_replace('/[^0-9+]/', '', $jdata["sender_phone"]));
   $transactionID       = $jdata["internal_transaction_id"];
   $transactionrefID        = str_replace('-','',$jdata["service_name"]);
   $MpesaCode = $jdata["transaction_reference"];
   $providerCurrency = $jdata["currency"];
   $providerSignature = $jdata["signature"];
   $payment_date = date("Y-m-d H:i:s",strtotime($jdata["transaction_timestamp"])); 
   $payment_time_at = date("Y-M-d",strtotime(NOW)) .' at '.date("H:i A",strtotime(NOW));
   $payment_type = $jdata['transaction_type'];
   $payment_destination = $jdata['business_number'];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-20
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多