繁体   English   中英

如何在PHP变量中获取JSON响应

[英]How to get JSON response in to PHP variables

我正在获取JSON格式的响应,并且希望它将其转换为PHP变量。

JSON:

{"CreateTransactionResponse":{"CreateTransactionResult":{"TransportKey":"aa900d54-7bfb-47e9-a5de-e423ec34a900"
,"ValidationKey":"fbb28b32-f439-4801-a434-99c70aa388ca","Messages":{}}}}

输出应为PHP:

$transkey = aa900d54-7bfb-47e9-a5de-e423ec34a900;
$vkey = fbb28b32-f439-4801-a434-99c70aa388ca

请告诉我该怎么做。

如果要访问您的json,请尝试先对其进行解码:

$result = json_decode($yourJSON, true);

foreach($result['CreateTransactionResponse'] as $key => $val){
   echo $transkey = 'TransportKey= ' . $val['TransportKey'] . '<br/>;
   echo $vkey = 'ValidationKey= ' . $val['ValidationKey'];
}

或者,如果它是JSON的数组

$result = json_decode($yourJSON, true);

$data = [];
foreach($result['CreateTransactionResponse'] as $key => $val){
   $data[] = [
        'TransportKey' => $val['TransportKey'],
        'ValidationKey' => $val['ValidationKey']
   ];
}
print_r($data);

只需简单地使用json_decode();

 $result= json_decode($jSon);

 var_dump($result); // to see the output

json到array( json_decode ),然后从数组中extract

$arr = json_decode($json, true);
extract($arr);
var_dump($CreateTransactionResponse);

输出:

array (size=1)
  'CreateTransactionResult' => 
    array (size=3)
      'TransportKey' => string 'aa900d54-7bfb-47e9-a5de-e423ec34a900' (length=36)
      'ValidationKey' => string 'fbb28b32-f439-4801-a434-99c70aa388ca' (length=36)
      'Messages' => 
        array (size=0)
          empty

有关提取的更多信息

使用$CreateTransactionResult['TransportKey']从JSON访问传输密钥。 类似地, $CreateTransactionResult['ValidationKey']用于验证密钥。

    try this code it will work  
$JSON='{"CreateTransactionResponse":{"CreateTransactionResult":{"TransportKey":"aa900d54-7bfb-47e9-a5de-e423ec34a900" ,"ValidationKey":"fbb28b32-f439-4801-a434-99c70aa388ca","Messages":{}}}}';    

    $arr=json_decode($JSON, TRUE);
    foreach ($arr as  $value) {

    foreach ($arr['CreateTransactionResponse'] as $key => $var) {
        echo 'TransportKey = '.$var['TransportKey'].'<br>';
        echo 'ValidationKey = '.$var['ValidationKey'].'<br>';
        foreach ($var['Messages'] as $key => $msg) {


        echo 'Messages = '.$msg.'<br>';
    }

        }
    }

在这种情况下,如果一次同时使用一个和TransportKey以及一个ValidationKey值(不传递数组/对象),则这是最简单的 否则,如果对象包含我们要使用或转换为变量的对象或内部对象,则应使用foreach该对象。

//Debuggig
//The string you provided is converted to a json object 
//In your case if it is a json object already pass directly it to $j
//below is just for debugging and understanding
//$json='{"CreateTransactionResponse":{"CreateTransactionResult":{"TransportKey":"aa900d54-7bfb-47e9-a5de-e423ec34a900","ValidationKey":"fbb28b32-f439-4801-a434-99c70aa388ca","Messages":{}}}}';
//$j=json_decode($json);

$transkey=$j->CreateTransactionResponse->CreateTransactionResult->TransportKey;
$vkey=$j->CreateTransactionResponse->CreateTransactionResult->ValidationKey;

echo $transkey."</br>";
echo $vkey."<br/>";
/*result as said: 
aa900d54-7bfb-47e9-a5de-e423ec34a900
fbb28b32-f439-4801-a434-99c70aa388ca
*/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM