[英]How to use a PayPal Hateoas link from json response in PHP?
这是我关于stackoverflow的第一个问题。
我正在寻找一种在json响应中使用(解析)Hateoas链接的方法,如下所示:
{
"links": [{
"href": "https://api.paypal.com/v1/payments/sale/36C38912MN9658832",
"rel": "self",
"method": "GET"
}, {
"href": "https://api.paypal.com/v1/payments/payment/PAY-5YK922393D847794YKER7MUI",
"rel": "parent_payment",
"method": "GET"
}]
}
获得在PHP中使用的链接,如下所示:
GET https://api.paypal.com/v1/payments/sale/36C38912MN9658832
我已经搜索了几个小时,以寻找解决方案,但只获得有关如何创建Hateoas链接的命中。
我知道如何将json转换为数组,但是我不知道如何在PHP中编写可用的链接。
我的目标是使用该链接从Paypal检索详细信息。
编辑
我看不清楚。 例如,我想从json中获取url和方法,其中'rel'=='self'。
希望你们中的一个能帮助我。
先感谢您。
经过反复试验,我自己找到了解决方案。
可以使用array_filter(array_map())这样完成:
$key = 'rel';
$val = 'self';
$links_array = json_decode('{
"links": [{
"href": "https://api.paypal.com/v1/payments/sale/36C38912MN9658832",
"rel": "self",
"method": "GET"
}, {
"href": "https://api.paypal.com/v1/payments/payment/PAY-5YK922393D847794YKER7MUI",
"rel": "parent_payment",
"method": "GET"
}]
}');
$arr_filtered = array_filter(array_map(function($elem) use ($key, $val) {
if ($elem[$key] == $val) { return $elem; }
}, $links_array['links']));
echo 'array filtered: ', var_dump($arr_filtered);
echo 'wanted array: ', var_dump($arr_filtered[0]);
结果是:
array(3) { ["href"]=> string(57) "https://api.paypal.com/v1/payments/sale/36C38912MN9658832" ["rel"]=> string(4) "self" ["method"]=> string(3) "GET" }
但是最后,我选择了老式的foreach循环,如下所示:
$link_arr = NULL;
foreach($links_array['links'] as $linkkey => $linkval) {
if ($linkval[$key] == $val) {
$link_arr = $linkval;
break;
}
}
echo 'link-arr: ',var_dump($link_arr);
这给了我相同的结果。
从而解决了我的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.