PHP中的JSON Product viewer

时间:2013-10-08 05:34:48

标签: php json curl

我需要创建一个从JSON API中提取数据的网站。该信息是包含以下JSON格式的以下数组的产品目录。

[{
    "id": "1",
    "name": "Product Name",
    "Description": "Lorem Ipsum"
},
{
    "id": "2",
    "name": "Product no 2"
    "Description": "Lorem Ipsum"
}]

我已经成功使用curl来获取JSON和json_decode数据。

我需要我的网站有一个索引页面,其中包含链接到包含描述的更详细信息页面的产品列表(仅包含名称)。

我需要有关如何最好地解决这个问题的帮助。

由于

2 个答案:

答案 0 :(得分:1)

根据我的理解,您需要index.php完成这两项工作:充当目录作为产品演示页面。

您需要做的第一件事是检查是否设置了$_GET['product'],在这种情况下您应该展示产品,否则会呈现目录。

您可以从以下操作开始:

$cat=json_decode($retrieved_json);
if(!isset($_GET['product']))
  {
  // act as a catalog
  $n=count($cat);
  echo "<h3><em>$n</em> products:</h3>\n<ul>";
  foreach($cat as $product) 
    echo "<li><a href='?product={$product->id}'>{$product->name}</a></li>\n";
  echo "</ul>";
  }
else
  {
  $product=$product_by_id($_GET['roduct']);
  if($product)
    {
    // act as a product presentation, if the id exists
    echo "<h3>{$product->name}</h3>\n";
    echo "<p>{$product->Description}</p>\n";
    echo "<p><em>Product id:<strong>{$product->id}</strong></em></p>\n";
    }
  else
    // display an error for non-existent ids
    echo "<h2>No product with id={$_GET['roduct']} was found!</h2>";
  }

// returns $cat's entry for the product $id
// or false if not found
function product_by_id($id)
  {
  global $cat;
  for($i=0;($i<count($cat)))&&($cat[$i]->id!=$id));$i++) {}
  return ($i<count($cat)?$cat[$i]:false);
  }

答案 1 :(得分:0)

有趣。大多数时候你会使用AJAX从服务器返回JSON数据,我想你可以使用curl做同样的事情。如果你能够将json字符串赋值给变量,你可以简单地json_decode它来创建一个php对象。

示例:

$curl_response = getCurlData(); // Pretend this is your CURL retrieving function
$obj = json_decode($curl_response);

然后你可以像对待任何对象一样遍历该对象中的值:

foreach ($obj as $data) {
    echo '<a href="index.php?product=' . $data->id . '">Product</a>';
}