使用php访问维基百科json

时间:2015-04-22 10:26:45

标签: php json wikipedia

我一直在尝试用php访问维基百科json数据。这是json。

{
"query": {
"normalized": [
  {
    "from": "နေဝင်း၊_ကောလိပ်ဂျင်",
    "to": "နေဝင်း၊ ကောလိပ်ဂျင်"
  }
],
"pages": {
  "7037": {
    "pageid": 7037,
    "ns": 0,
    "title": "နေဝင်း၊ ကောလိပ်ဂျင်",
    "revisions": [
      {
        "user": "Mayor mt",
        "timestamp": "2015-04-04T06:30:59Z",
        "comment": "\/* ကောလိပ်ဂျင် *\/",
        "contentformat": "text\/x-wiki",
        "contentmodel": "wikitext",
        "*": "{| border=\"0\" cellpadding=\"2\" style=\"margin:7px;width: 20em; font-size: 90%; text-align: left; float:right; border:1px solid #5BBFF4; background-color:#FDE4FE;\"\n|-\n| colspan=\"2\" style=\"text-align: center; font-size: 130%; font-weight: bold;\" | ကောလိပ်ဂျင်နေဝင်း\n|-\n| colspan=\"2\" style=\"text-align: center;\" |[[File:CLJ.jpg|180px]]\n\n|-valign=\"top\"\n| '''မွေးသက္ကရာဇ်'''\n| ၁-၁၀-၁၉၂၈\n\n|-valign=\"top\"\n| '''မိဘအမည်'''\n| ဦးသက်ဖေ+ဒေါ်တင် \n\n|-valign=\"top\"\n| '''အမည်ရင်း'''\n| နေဝင်း\n\n|-valign=\"top\"\n| '''နိုင်ငံ'''\n|[[File:Flag of Myanmar.svg|25px ]] မြန်မာ\n\n|-valign=\"top\"\n| '''ပညာအရည်အချင်း'''\n| \n\n|-valign=\"top\"\n|'''အလုပ်အကိုင်'''\n| ရုပ်ရှင်သရုပ်ဆောင်\n\n|-valign=\"top\"\n|'''ထင်ရှားကျော်ကြားမှု'''\n| ထူးခြားစွာ ရုပ်ရှင်သရုပ်ဆောင်နိုင်သူ၊ စကားပြောကောင်းသူ၊ ဘောလုံးသမား \n\n|-valign=\"top\"\n| '''ကိုးကွယ်သည့်ဘာသာ'''\n| ခရစ်ယာန်\n\n|}\n== ကောလိပ်ဂျင်နေဝင်း(၁၉၂၈-၁၉၈၃) ==\n'''ကောလိပ်ဂျင်နေဝင်း'''ကို ၁-၁၀-၂၈ ရက်နေ့တွင် ဟင်္သာတမြို့၌

我知道如何访问xml标签中的数据。但Json对我来说是新手。我用php解码json并尝试访问

 var_dump ($dj->query->pages);

,输出

 object(stdClass)[4]
public '7037' => 
object(stdClass)[5]
  public 'pageid' => int 7037
  public 'ns' => int 0
  public 'title' => string 'နေဝင်း၊ ကောလိပ်ဂျင်' (length=55)
  public 'revisions' => 
    array (size=1)
      0 => 
        object(stdClass)[6]
          ...

问题是我无法进一步。例如,如何在json上面获取pageid的字符串?任何想法或方向都将不胜感激。

1 个答案:

答案 0 :(得分:1)

尝试将json解码为数组,以便您可以更轻松地访问数据,例如:

$jsonData = json_decode($json, TRUE); //set the flag
$jsonData = $jsonData['query']['pages']; //rewrite with usefull info
$pageIds = array_keys($jsonData);     //get pages, array(7037,...)
foreach($pageIds as $pageId) {        //iterate to access $jsonData[7037]['title']
    echo $jsonData[$pageId]['title'];
}