【问题标题】:How do I eliminate keys from MediaWiki External Data JSON?如何从 MediaWiki 外部数据 JSON 中删除密钥?
【发布时间】:2018-10-11 04:37:39
【问题描述】:

我正在使用带有外部数据扩展的 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”(均不正确)的条目。

有没有办法明确排除 venuegroup“字典”或仅显示“外部”值?

【问题讨论】:

    标签: json mediawiki mediawiki-extensions


    【解决方案1】:

    您应该使用新格式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}}}]
    }}
    |}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-27
      • 1970-01-01
      • 1970-01-01
      • 2019-06-24
      • 1970-01-01
      • 2022-12-01
      • 2011-10-07
      相关资源
      最近更新 更多