如何从json中的嵌套数据中获取精确数据

时间:2018-04-03 07:08:19

标签: json hbase apache-nifi

我尝试过SplitJson和EvaluateJson处理器,但我无法获得正确的数据 例如:

{
   "affiliate": {
    "name": "affiliate",
    "apiLists": {
        "category1": {
            "availableVariants": {
                "v1.1.0": {
                    "resourceName": "category1",
                    "put": null,
                    "delete": null,
                    "post": null
                },
                "v0.1.0": {
                    "resourceName": "category1",
                    "put": null,
                    "delete": null
                }
            },
            "apiName": "category1"
        },
        "category2": {
            "availableVariants": {
                "v1.1.0": {
                    "resourceName": "category2",
                    "put": null,
                    "delete": null,
                    "post": null
                },
                "v0.1.0": {
                    "resourceName": "category2",
                    "put": null,
                    "delete": null,
                    "post": null
                }
            },
            "apiName": "category2"
        }
    }
   }    
}

我想存储apiLists中的“category1”,也想要“category2”

1 个答案:

答案 0 :(得分:0)

Umang soni,

在EvaluateJsonPath中添加以下配置,并创建两个属性“Category1”和“Category2”。

Destination: flowfile-attribute
ReturnType :auto-detect
Category1: $.affiliate.apiLists.category1
Category2: $.affiliate.apiLists.category2

它会将您的category1内容添加到名为“Category1”的属性以及“Category2”中。

修改-1 如果您不知道类别名称,可以在evaluateJsonpath中使用以下配置。

Destination:flowfile-content
ReturnType:auto-detect
ApiLists:$.affiliate.apiLists

这里所有类别都放在json的flowfile中。现在您可以使用SplitJSON处理器将其拆分。 希望这对你有所帮助。