0

我在 Cloudera Manager Navigator REST API 中工作,其中提取结果工作正常,但无法获得任何嵌套值。

数据类型提取如下。

{
    "parentPath": "String",
    "customProperties": "Map[string,string]",
    "sourceType": "String",
    "entityType": "String"
}

数据应该像

{
    "parentPath": "abcd",
    "customProperties": {
                            "nameservice" : "xyz"
                        },
    "sourceType": "rcs",
    "entityType": "ufo"
}

但我得到的键值结果如下。

parentPath :abcd
customProperties : null
sourceType : rcs
entityType : ufo

在上面的响应数据中,“customProperties”带有一个空值,它应该返回一个包含的地图对象["nameservice" : "xyz"]。这是以下代码片段的问题。

MetadataResultSet metadataResultSet = extractor.extractMetadata(null, null,"sourceType:HDFS", "identity:*");
Iterator<Map<String, Object>> entitiesIt = metadataResultSet.getEntities().iterator(); 
     while(entitiesIt.hasNext()){
        Map<String, Object> result = entitiesIt.next();
        for(String data : result.keySet()){
                        System.out.println(" key:"+data+" value:"+result.get(data));
                        }
        }

您能否建议我如何获取数据类型复杂的嵌套值。

4

1 回答 1

0

你检查过数据在导航器 ui 上的样子吗?您可以先验证一次,然后在浏览器中尝试 cloudera /entities/entity-id rest API 来检查 json 响应是如何到来的

于 2016-07-09T15:37:12.043 回答