【问题标题】:How to get JSON data value based on another value on the same level?如何根据同级别的另一个值获取 JSON 数据值?
【发布时间】:2015-07-07 14:04:09
【问题描述】:

我正在尝试解析调用 API 时提供的 Google Places JSON。我的问题是我需要单独获取地址数据。

例如:

{
   "html_attributions" : [],
   "result" : {
      "address_components" : [
         {
            "long_name" : "48",
            "short_name" : "48",
            "types" : [ "street_number" ]
         },
         {
            "long_name" : "Pirrama Road",
            "short_name" : "Pirrama Road",
            "types" : [ "route" ]
         },
         {
            "long_name" : "Pyrmont",
            "short_name" : "Pyrmont",
            "types" : [ "locality", "political" ]
         },
         {
            "long_name" : "NSW",
            "short_name" : "NSW",
            "types" : [ "administrative_area_level_1", "political" ]
         },
         {
            "long_name" : "AU",
            "short_name" : "AU",
            "types" : [ "country", "political" ]
         },
         {
            "long_name" : "2009",
            "short_name" : "2009",
            "types" : [ "postal_code" ]
         }
      ], ......

我需要得到postal_code,所以我可以使用Jason Path $.result.address_components[5].long_name,但有时Json 没有street_numberroute,在这些情况下,我弄错了数据或null

我需要的是一种方法来获取long_name,其中级别的类型是postal_code,使用Xpath(因为我使用Pentaho 来解析它,这就是它的工作方式)。

提前致谢。

【问题讨论】:

  • XPath 用于 XML 文档,而不是 JSON。您是否以某种方式将此 JSON 转换为 XML?
  • @MikeBrant 我没有转换。我正在使用类似 Xpath 的 Json

标签: json google-places-api pentaho kettle jsonpath


【解决方案1】:

您可能需要几个 JSON 输入步骤,一个是获取各个地址组件(以及其中的类型),另一个是获取 long_name:

过滤行步骤将按类型选择正确的行,然后最后一个 JSON 输入将从您想要的字段中获取您想要的字段。这是您的示例输入的要点:

https://gist.github.com/mattyb149/0ceea5d7e33ae86782e0

如果您有任何疑问、问题等,请告诉我。干杯!

【讨论】:

  • 感谢您的回复。我不确定我是否理解你的所作所为。你能发布这些步骤属性的图片吗?
  • 我问你是因为我需要获取所有地址。对于那些有邮政编码的人,我需要把它放在最后一个单独的 excel 列中。对于那些没有的,则为空。认为这不会是一个问题,但我不明白你做了什么。认为这可能有效,只需要一些澄清。 :)
  • 如果你去gist,下载它,然后在PDI中打开它,你可以看到所有步骤对话框的设置
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-02
  • 1970-01-01
  • 2021-12-18
  • 1970-01-01
  • 2022-01-03
  • 2016-11-22
相关资源
最近更新 更多