【问题标题】:Getting plain text from json API从 json API 获取纯文本
【发布时间】:2014-10-26 09:14:25
【问题描述】:

所以我有这个 api:http://85.17.32.4:8707/status-json.xsl

我想从中提取一些东西,所以我从非常基础的开始:

 <?php echo json_decode('http://85.17.32.4:8707/status-json.xsl');

它完全没有结果。下次尝试:

<?php
$var = json_decode('http://85.17.32.4:8707/status-json.xsl');
var_dump($var);

刚刚回归NULL

然后我尝试制作一个 cURL 函数:

<?php
$url = 'http://85.17.32.4:8707/status-json.xsl';
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL,$url);
$result=curl_exec($ch);
curl_close($ch);
var_dump(json_decode($result, true));

这也返回 NULL。我还有其他选择吗?

谢谢。

【问题讨论】:

  • 那个“JSON”是完全无效的。根据在线解析器,里面至少有8个错误。
  • 这看起来根本不像一个有效的 json 字符串。确保 API 返回有效的 json。括号错误,您有未转义的值,例如 Guns N' Roses 中的引号,这可能会在以后导致问题

标签: php json xslt


【解决方案1】:

是的,您确实有更多选择:检查json_last_error_msg 并查看 json 解码是否存在问题:

$json = json_decode($result, true);

# check if there has been an error decoding:
if (! isset($json)) {
    echo "Decoding error: " . json_last_error_msg() . PHP_EOL;
}

输出:

Decoding error: Syntax error

即JSON 中有语法错误。您需要告诉 JSON 提供者他们没有提供有效的 JSON。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多