使用id标识符显示JSON项

时间:2017-04-15 11:46:36

标签: php json

我在JSON中有一个博客API,我正在尝试使用PHP。我有一个名为'index.php'的页面,其中列出了从JSON文件中提取的博客中的所有帖子,并将id从另一个页面'post.php'传递到该页面的href链接。

当用户点击所选帖子时,我需要'post.php'页面来保存由'index.php'发送的ID标识的单个帖子

我正在显示标题和其他财产,如下所示:

<h2><?php echo $post->title ?></h2>

但我需要做一些像

这样的事情
<h2><?php echo $post->id->$post->title ?></h2>

确保仅显示具有给定ID的帖子 以下是JSON的摘录

{


"posts": [
    {
      "type": "post",
      "date": "2017-04-11T13:36:46+00:00",
      "title": "Title here",

      "content": "my content"    
      "author": {
        "id": 878,
        "nicename": "tretr",
        "display_name": "name here",
        "user_url": "",
        "posts_url": "https:\\/\\/blogs.kent.ac.uk\\/kbs-news-events\\/author\\/cmb58\\/",
        "meta": {
          "description": "",
          "first_name": "first name",
          "last_name": "last name",

        }
      },

      "id": 1234,
      "permalink": "https:\/\/ link.....",
      "modified": "2017-04-11T13:39:36+00:00",
      "excerpt": "more here",
      "meta": [],

      etc.......
    }
  ],
  "http_status": 200
}

1 个答案:

答案 0 :(得分:0)

理想情况下,您使用的博客API应返回基于ID的记录,以便您拥有一个列表API和一个返回单个帖子的视图API。 如果没有,我建议你循环并将当前JSON结构的格式更改为:

for(i=0;i<array.length;i++) 

注意添加了 nodeEnter.filter(function(d) { return d.data.elementType == "xs:element" }).call(xsElement); function xsElement(selection) { selection.append('rect') .attr('class', 'node') .attr('y', -16) .attr('rx', 5) .attr('ry', 5) .attr('width', function(d) { return d.data.y_size + 50; }) .attr('height', function(d) { return 32; }) .style("fill", function(d) { return d._children ? "lightsteelblue" : "lemonchiffon"; }) .filter(function(d) { return d.data.documentation != null }) .append("title").text(function(d) { return d.data.documentation; }); // Add labels for the nodes selection.append('text') .attr("dy", ".35em") .attr("y", -6) .attr("x", 6) .attr("text-anchor", "start") .text(function(d) { return d.data.name; }); . . . } 键,将每个帖子数组更改为JavaScript对象。使用此功能,您现在可以通过{ "posts": { "1234": { "type": "post", "date": "2017-04-11T13:36:46+00:00", "title": "Title here", "content": "my content", "author": { "id": 878, "nicename": "tretr", "display_name": "name here", "user_url": "", "posts_url": "https:\\/\\/blogs.kent.ac.uk\\/kbs-news-events\\/author\\/cmb58\\/", "meta": { "description": "", "first_name": "first name", "last_name": "last name" } }, "id": 1234, "permalink": "https:// link.....", "modified": "2017-04-11T13:39:36+00:00", "excerpt": "more here", "meta": [] } }, "http_status": 200 }

访问每个帖子

编辑 根据您的评论,您可以使用api如下:     $ data = json_decode(file_get_contents(&#39; http://api.kent.ac.uk/api/v1/blogs/music-matters/8192&#39;));     echo $ data-&gt; title;