【问题标题】:How do you decode a JSON data in WordPress?如何在 WordPress 中解码 JSON 数据?
【发布时间】:2021-08-07 17:13:14
【问题描述】:

8 小时以来,我一直在尝试解析这个 JSON 响应数据

 {"status":"200","message":"Welcome to spakkolos.com! You are welcome. Stay tuned"}    

我已经尝试了followig,没有运气:

$response = wp_remote_request( "https://loopwi.com/json");
$body = wp_remote_retrieve_body($response); 
$json = json_decode($body);
echo $json->message;  //I got NULL
echo $json['message']; // I got NULL

我尝试了几种方法,我探索了 WordPress 的非序列化功能 - 都不起作用。但这在 WordPress 之外非常完美。我不知道为什么 WordPress 让这个简单的过程变得如此困难!

我做了很多研究,仍然没有直接的例子。请问各位大侠,我需要你的帮助吗? 谢谢

【问题讨论】:

  • var_dump($json); 提供了什么?
  • var_dump($json);给出 NULL
  • @SAMUELADAH 请检查我下面的代码,如果您遇到任何困难,请告诉我

标签: php json wordpress decode


【解决方案1】:

你能试试下面的代码吗,我用的是php file_get_contents而不是wordpress finction,希望对你有意义

$body = trim(file_get_contents('https://loopwi.com/json'), "\xEF\xBB\xBF");
$json = json_decode($body);
echo $json->message;  
echo $json['message'];

说明请参考link

【讨论】:

  • 您的代码有效,但 WordPress 不允许使用 file_get_contents()。但是,您提供的关于 trim($response), "\xEF\xBB\xBF"); 的见解确实奏效了。似乎 WordPress 需要在允许数据显示之前对其进行修剪。我会回答自己并编辑。谢谢
【解决方案2】:

感谢大家的回复。正如@Ajith 指出的关于 trim();通过使用

trim();

响应体上的功能,问题解决了。 有一些方法可以实现这一点:

$response = wp_remote_request( "https://loopwi.com/json");
$body = trim(wp_remote_retrieve_body($response), "\xEF\xBB\xBF"); 
$body = trim($body, "\xEF\xBB\xBF"); 
$json = json_decode($body);
echo $json->message; 

或者这样:

$url = "https://loopwi.com/json";
$response = wp_remote_get( $url );

if ( is_array( $response ) && ! is_wp_error( $response ) ) {
    $headers = $response['headers']; // array of http header lines
    $body    = trim($response['body'], "\xEF\xBB\xBF"); // use the content
    $json = json_decode($body);
       echo $json->status; 
       echo $json->message;
}

这些是 WordPress WordPress 中的功能 HTTP API - wp_remote_get、wp_remote_request

如果您在 WordPress 中使用 file_get_contents(),您的项目可能会被拒绝。请改用 HTTP API 函数。

感谢所有回答和评论的人。干杯!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-25
    • 2019-08-20
    • 2021-06-26
    相关资源
    最近更新 更多