如何从MediaWiki外部数据JSON中消除密钥?

时间:2018-10-11 04:37:39

标签: json mediawiki mediawiki-extensions

我正在使用带有外部数据扩展名的MediaWiki 1.27。外部数据仅以JSON格式提供。不幸的是,数据返回重复的键名,其中有些嵌套。参见示例:

[
    {
        "created": 1481938823000,
        "name": "3D Thursdays & Open House",
        "venue": {
            "name": "HacDC",
            ...
        },
        "group": {
            "name": "HacDC",
            ...
        },
        ...
    },
    ...
]

尝试使用以下方法显示数据时:

{{#get_web_data:
url=https://api.meetup.com/hac-dc/events?scroll=next_upcoming&page=10
|format=JSON
|data=local_date=local_date,local_time=local_time,name=name,link=link,duration=duration
|cache seconds=0
}} 

{| class="wikitable"
! Date
! Time
! Event {{#for_external_table:<nowiki/>
{{!}}-
{{!}} {{{local_date}}}
{{!}} {{{local_time}}}
{{!}} [{{{link}}} {{{name}}}]
}}
|}

MediaWiki似乎没有明显的方法来忽略嵌套的name键,并显示“ 3D Thursday&Open House”(正确)以及“ HacDC”和“ HacDC”(均不正确)的条目。 / p>

是否可以显式排除venuegroup“词典”或仅显示“外部”值?

1 个答案:

答案 0 :(得分:0)

您应使用新的格式json with jsonpath(至少升级扩展名):

{{#get_web_data:
 url=https://api.meetup.com/hac-dc/events?scroll=next_upcoming&page=10
|format=json with jsonpath
|data=local_date=$.*.local_date,local_time=$.*.local_time,name=$.*.name,link=$.*.link,duration=$.*.duration
|cache seconds=10
}}{| class="wikitable"
! Date
! Time
! Duration
! Event {{#for_external_table:<nowiki/>
{{!}}-
{{!}} {{{local_date}}}
{{!}} {{{local_time}}}
{{!}} {{{duration}}}
{{!}} [{{{link}}} {{{name}}}]
}}
|}