首页 > 解决方案 > 如何获取json数据?

问题描述

我有两个 Json 文件。根据第一个 Json,从第二个 Json 获取数据时遇到问题。

我想根据第一个 Json 的“short”键显示第二个 Json 的“changePercent”键。

“符号”必须与“短”匹配

这是一个 php 文件。我正在尝试检索实时数据。

第一个Json:

[
{"long":"Microsoft","short":"MSFT"},
{"long":"Facebook","short":"FB"},
{"long":"Frankfurt Dax Index","short":"DAX30"}
]

第二个Json:

{
"AAPL":{"quote":{"symbol":"AAPL","changePercent":0.04}},
"FB":{"quote":{"symbol":"FB","changePercent":0.03}} 
}

我的代码:

$json1 = $CCWE->feed($CCWE->config->feeds->coincap->front);
$json2 = file_get_contents('json2url');
$obj = json_decode($json2); 

if ( in_array($json1->short , array('AAPL','MSFT'), true ) ) {                                   
echo $obj->{$json1->short}->changePercent;                                   
}

我希望得到 changePercent

标签: phpjson

解决方案


您不需要第一个 json。

$json2 = file_get_contents('json2url');

/**
 * Explanation:
 * passing `true` to json_decode will result in an array instead of an object.
 */
foreach ( json_decode($json2, true) as $short=>$data )
{

    if ( in_array($short, ['AAPL', 'MSFT']) ) {
        echo $short . " changed: " . $data['quote']['changePercent'] . "<br>\n";
    }

}

推荐阅读