-1

InvokeHTTPCustom を使用して API 呼び出しから受け取った json ファイルから属性を抽出する必要があります。JSON FILE には、次のサンプル データがあります。

[
    {
        "input_index": 0,
        "candidate_index": 0,
        "delivery_line_1": "1 Santa Claus Ln",
        "last_line": "North Pole AK 99705-9901",
        "delivery_point_barcode": "997059901010",
        "components": {
            "primary_number": "1",
            "street_name": "Santa Claus",
            "street_suffix": "Ln",
            "city_name": "North Pole",
            "state_abbreviation": "AK",
            "zipcode": "99705",
            "plus4_code": "9901",
            "delivery_point": "01",
            "delivery_point_check_digit": "0"
        },
        "metadata": {
            "record_type": "S",
            "zip_type": "Standard",
            "county_fips": "02090",
            "county_name": "Fairbanks North Star",
            "carrier_route": "C004",
            "congressional_district": "AL",
            "rdi": "Commercial",
            "elot_sequence": "0001",
            "elot_sort": "A",
            "latitude": 64.75233,
            "longitude": -147.35297,
            "coordinate_license": 1,
            "precision": "Rooftop",
            "time_zone": "Alaska",
            "utc_offset": -9,
            "dst": true
        },
        "analysis": {
            "dpv_match_code": "Y",
            "dpv_footnotes": "AABB",
            "dpv_cmra": "N",
            "dpv_vacant": "N",
            "dpv_no_stat": "Y",
            "active": "Y",
            "footnotes": "L#"
        }
    },
    {
        "input_index": 1,
        "candidate_index": 0,
        "addressee": "Apple Inc",
        "delivery_line_1": "1 Infinite Loop",
        // truncated for brevity
    }
]

住所、州、都市、primary_number などの必要なデータをすべて抽出しました。ただし、メタデータから緯度、経度を抽出しようとすると、EvaluateJsonPathAttributeCustom プロセッサでエラーが発生します。文字列形式のその他の属性は、正しく抽出されます。ただし、これは文字列ではないため、問題になる可能性があります。私の診断です。これを機能させるにはどうすればよいですか?経度と緯度を抽出する必要があります。私はnifiに慣れていないので、詳細な説明をお願いします。EvaluateJsonPathAttributeCustom の nifi での構成:

Attribute Name Input : x**.json
Attribute Name Output : latitude
JsonPathExpresssion : $[0].metadata.latitude
Splitif.. : False
4

1 に答える 1

0

これを行う 1 つの方法は、JOLT https://jolt-demo.appspot.com/を使用することです。JoltTransformJSON NiFi プロセッサを使用することをお勧めします。必要なデータだけを簡単に引き出すことができるためです。あなたの特定のリクエストを試してみましたが、それらのデータを引き出すことができます。必要なデータを取得するように JOLT を構成することができます。

    [{
  "operation": "shift",
  "spec": {
    "*": {
      "metadata": {
        "latitude": "latitude",
        "longitude": "longitude"
      }
    }
  }
  }]
于 2021-09-03T12:13:04.050 に答える