首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找JSON条目(Kraken.com不常见的JSON格式)

查找JSON条目(Kraken.com不常见的JSON格式)
EN

Stack Overflow用户
提问于 2022-11-23 22:13:06
回答 2查看 38关注 0票数 0

我需要找到JSON检索到的文件中是否存在字符串:我是这样得到的:

代码语言:javascript
复制
$sURL = "https://api.kraken.com/0/public/OHLC?pair=ETHAED&interval=5&since=". strtotime("-1 day");

$ch = curl_init();

$config['useragent'] = 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0';

curl_setopt($ch, CURLOPT_USERAGENT, $config['useragent']);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_URL, $sURL);

$result = curl_exec($ch);

curl_close($ch);

$obj = json_decode($result, true);

有时,对名不同于URL字符串和JSON (即我可以编写LTCEUR,但在JSON中我看到了LTCZEUR )

因此,我需要检查字符串$obj中是否存在

代码语言:javascript
复制
$sName = "ETHAED";

print_r($obj);

if (in_array($sName,$obj)){

    echo("Found ".$sName."<br>");

}else{

    echo("NOT FOUND"."<br>");

}

但这不管用。

如果我做了一个print_r(),我可以清楚地看到对名称,但不能验证它。有什么建议吗?

Kraken.com JSON是不标准的,所以我无法轻松地检索这对的名称,我尝试了所有可能的组合$obj“结果”,但没有结果。

示例:https://api.kraken.com/0/public/OHLC?pair=LTCUSD这里对是LTCUSD美元

但关于Json:

{"error":[],"result":{"XLTCZUSD":[[1669197540,"78.74","78.74","78.58","78.59","78.59","23.82168114",8]

EN

回答 2

Stack Overflow用户

发布于 2022-11-23 22:33:18

你的比较有点不对劲。

代码语言:javascript
复制
in_array($sName,$obj)

应:

代码语言:javascript
复制
is_array($obj['result'][$sName] ?? null)

警告:仔细阅读;现在是is而不是in

或者,如果您不关心它是null、字符串还是非数组:

代码语言:javascript
复制
array_key_exists($obj['result'], $sName)

详细解释

in_array($sName,$obj)正在检查$sName是否匹配(==相等)数组第一级中的任何元素。

由于数组的第一级如下所示(这里是伪代码):

代码语言:javascript
复制
error => []
result => [
    XLTCZUSD => [...]
    last: 123456
]

因为'ETHAED'既不是[],也不是[XLTCZUSD => [...],last: 123456],所以它与任何东西都不匹配。

票数 0
EN

Stack Overflow用户

发布于 2022-11-23 23:02:59

是的,它工作得很好。只是对格式做了一点小小的修正:

代码语言:javascript
复制
if (array_key_exists($sName, $obj['result'])){
echo("FOUND ".$sName."<br>");           
}else{
echo("ERROR ".$sName."<br>"); 
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74553533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档