Я пытался получить доступ к данным Википедии JSON с php. Вот это 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 является новым для меня. Я декодирую JSON с помощью PHP и пытаюсь получить доступ как
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]
...
Проблема в том, что я не могу получить дальше. Например, как я могу получить строку для pageid выше json? Любые идеи или указания будут оценены.
Попробуйте декодировать 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'];
}
Других решений пока нет …