php - 如何获取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
解决方案
您不需要第一个 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";
}
}
推荐阅读
- matlab - 检查结构体的 MATLAB 元胞数组中是否存在字段值的组合
- javascript - 如何将 unicode 表情符号转换为十六进制代码点(具有多个组)
- image - 图像的零填充傅里叶
- java - 单击操作栏中的共享应用程序链接时出现问题
- python - 如何同时使用多分类和回归?
- angular - 使用订阅处理 HTTP 请求
- c# - 如何对二进制图像进行 HttpUtility.UrlEncode?
- function - 如果我在交互式 shell 中输入此函数的代码,它可以工作,但作为一个函数它不能,为什么?
- android - 如何在应用程序类中捕获结构异常?#AskFirebase
- reactjs - 使用路由器的路由在 react js 中不起作用