作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Cumulocity Java SDK,并且我正在尝试访问 ManagedObject 之一中的自定义片段。类似这样的事情:
...
"type": "sap_CustomomerLocation",
"c8y_PropertyType":{
"Customer.Name":{
"name":"customerName",
"sap_field_name":{
"requestIdentifier":"SAP",
"adressIdentifier":"customerName"
}
},
"Customer.Address":{
"name":"customerAddress",
"sap_field_name":{
"requestIdentifier":"SAP",
"adressIdentifier":"customerAddress"
}
}
}
...
我无法更改片段的格式。在 Java 应用程序中,我通过以下方式获取 Mo:
InventoryFilter filter = new InventoryFilter();
filter.byType("sap_CustomomerLocation");
ManagedObjectCollection configuration = platform.getInventoryApi().getManagedObjectsByFilter(filter);
ManagedObjectRepresentation singleConfig = configuration.get().allPages().iterator().next();
Map<String, Object> attrs = singleConfig.getAttrs();
问题是我无法访问“sap_field_name”,attrs 是 HashMap@Node。在 IntelliJ 的调试器中,当我使用“evaluateExpression”时,会生成类似的内容:
((HashMap.Node)((HashMap)((HashMap.Node)((HashMap)((HashMap.Node)((HashMap)((HashMap.Node)((HashMap)attrs).entrySet().toArray()[0]).getValue()).entrySet().toArray()[0]).getValue()).entrySet().toArray()[0]).getValue()).entrySet().toArray()[1]).getValue()
那么,你能提出一些建议吗?我应该以某种方式将其传递给 DTO 吗?但是如何处理 JSON 中可能发生变化的键(“Customer.Name”、“Customer.Address”),因为这是一个字段列表。
最佳答案
我尝试在命名空间 c8y.PropertyType
中创建一个新类,它有点起作用,Cumulocity SDK,或者更确切地说 Jackson JSON 发现有一个类并尝试映射它,但问题仍然存在这个动态字段的术语。
在 Jackson 代码中进行小规模调试后,我发现我需要在正确的命名空间中为所有自定义字段创建一个类(不幸的是我不知道名称)。
所以这是我认为可以接受的解决方法:
ManagedObjectRepresentation singleConfig;
Map<String, Object> attrs = singleConfig.getAttrs();
ObjectMapper mapper = new ObjectMapper();
JsonNode jsonNode = mapper.valueToTree(attrs);
String customFieldName = jsonNode.get("c8y_PropertyType").get("attrs").iterator().next().get("sap_field_name").get("adressIdentifier").asText();
关于java - 如何在Java SDK中访问c8y_PropertyType(自定义属性)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51105125/
我是一名优秀的程序员,十分优秀!