如何在PHP中从给定JSON数据提取longurl字段
如何从JSON数据中提取longurl到PHP变量?
别担心,我帮你搞定这个问题!你提供的JSON数据是合法的,大概率是在json_decode的使用细节上出了小问题,下面给你两种可行的方案:
方案1:将JSON解码为PHP对象
你可以直接把JSON字符串解码成对象,然后通过对象属性访问的方式获取longurl:
// 你的JSON数据字符串 $jsonData = '{ "success": true, "payment_request": { "id": "3e64d6cbe5ab4829a34845ba69e6f1bb", "phone": "+918562074512", "email": "abcd1@gmail.com", "buyer_name": "just a name", "amount": "10.00", "purpose": "Demo PAID Package", "expires_at": null, "status": "Pending", "send_sms": false, "send_email": true, "sms_status": null, "email_status": "Pending", "shorturl": null, "longurl": "https://test.instamojo.com/@justaname/3e64d6cbe5ab4829a34845ba69e6f1bb", "redirect_url": "http://www.mywebsite.in/exam/Checkouts/Instamojopostpayment/", "webhook": "http://www.example.com/webhook/", "allow_repeated_payments": false, "customer_id": null, "created_at": "2018-05-09T15:05:03.712593Z", "modified_at": "2018-05-09T15:05:03.712614Z" } }'; // 解码为对象 $decodedData = json_decode($jsonData); // 提取longurl $longUrl = $decodedData->payment_request->longurl; // 输出测试 echo $longUrl;
方案2:将JSON解码为关联数组
如果你更习惯使用数组操作,可以给json_decode传递第二个参数true,把JSON转成关联数组:
// 同样的JSON数据字符串 $jsonData = '{ "success": true, "payment_request": { "id": "3e64d6cbe5ab4829a34845ba69e6f1bb", "phone": "+918562074512", "email": "abcd1@gmail.com", "buyer_name": "just a name", "amount": "10.00", "purpose": "Demo PAID Package", "expires_at": null, "status": "Pending", "send_sms": false, "send_email": true, "sms_status": null, "email_status": "Pending", "shorturl": null, "longurl": "https://test.instamojo.com/@justaname/3e64d6cbe5ab4829a34845ba69e6f1bb", "redirect_url": "http://www.mywebsite.in/exam/Checkouts/Instamojopostpayment/", "webhook": "http://www.example.com/webhook/", "allow_repeated_payments": false, "customer_id": null, "created_at": "2018-05-09T15:05:03.712593Z", "modified_at": "2018-05-09T15:05:03.712614Z" } }'; // 解码为关联数组 $decodedData = json_decode($jsonData, true); // 提取longurl $longUrl = $decodedData['payment_request']['longurl']; // 输出测试 echo $longUrl;
可能踩坑的地方
- 确保你的JSON字符串没有语法错误(你提供的这段是没问题的),如果解码失败可以用
json_last_error()查看错误原因。 - 如果JSON是从外部接口获取的,要确保已经正确获取到完整的JSON字符串,没有被截断或者包含多余字符。
内容的提问来源于stack exchange,提问作者Kautuk Bhatnagar
相关产品推荐
相关产品推荐

