我试图从我的API中提取JSON数据,并从每个键中获取数据以在HTML / CSS中很好地显示。现在无法获取数据。
这是我的数据库对象:
[ { "_id":"54bd5fbb646174009a450001", "productname":"Product 1", "overview":"Overview Title", "benefits": [ "List item 1", "List item 2", "List item 3" ] } ]
我在这里找到了这个答案,并且var_dump正在工作,它在页面上显示了我的db对象。这是我更新的wordpress php插件:
<?php add_shortcode('mis', function($atts, $data) { $service_url = 'http://local.web.tt.com:8615/api/users'; // Initiate curl $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_URL,$service_url); $result=curl_exec($ch); curl_close($ch); // Will dump a beauty json :3 // var_dump(json_decode($result, true)); $data = (json_decode($result, true)); var_dump($data); $data = add_shortcode ( array( 'name' => 'name', 'overview' => 'overview', 'benefits' => 'benefits' ), $data ); extract($data); $content .=' <style>li { margin-left: 20px; }</style> <h2>$name</h2> <p>$overview</p> <ul> <li>$data["benefits"][0]</li> <li>$data["benefits"][2]</li> </ul>'; return $content; });
但是我在获取数据方面遇到了麻烦:
这是我的问题所在:
$data = (json_decode($result, true)); var_dump($data); $data = add_shortcode ( array( 'name' => 'name', 'overview' => 'overview', 'benefits' => 'benefits' ), $data ); extract($data); $content .=' <style>li { margin-left: 20px; }</style> <h2>$name</h2> <p>$overview</p> <ul> <li>$data["benefits"][0]</li> <li>$data["benefits"][1]</li> </ul>'; return $content;
如何将数据从var_dump获取到$ content变量中的正确键/变量中?
这部分代码很奇怪-它打算做什么?
$data = add_shortcode ( array( 'name' => 'name', 'overview' => 'overview', 'benefits' => 'benefits' ), $data ); extract($data);
要访问您的数据,您只需
$data[0]['productname']
您还可以将输出变量放在字符串中(在中'')。要将数据带入输出,请尝试:
''
$data = (json_decode($result, true)); var_dump($data); $product = $data[0]; $content = '<style>li { margin-left: 20px; }</style>'; $content .='<h2>' . $product['productname'] . '</h2> <p>' . $product['overview'] . '</p> <ul> <li>' . $product["benefits"][0] . '</li> <li>' . $product["benefits"][1] . '</li> </ul>';
或循环播放:
$data = (json_decode($result, true)); $content = '<style>li { margin-left: 20px; }</style>'; foreach($data as $product) { $content .='<h2>' . $product['productname'] . '</h2> <p>' . $product['overview'] . '</p> <ul>'; foreach($product['benefits'] as $benefit) { $content .= '<li>' . $benefit . '</li>'; } $content .= '</ul>'; }