json - JSON 的 JOLT 转换最初来自 Protobuf 格式
问题描述
我已从 protobuf 协议转换为以下格式的 json:
{
"id": "6aa0734f-6d6a-4b95-8a2b-2dde346f9df7",
"measurements": [
{
"ts": "1590331111510000000",
"values": [
{},
{
"name": 1,
"value": -1.8093990087509155
},
{
"name": 2,
"value": 0.35456427931785583
}
],
"parameters": [
"Stat",
"VoltageAnglePhaseB"
]
}
]
}
预期输出是:
{
"id" : "6aa0734f-6d6a-4b95-8a2b-2dde346f9df7",
"ts" : "1590331111510000000",
"Stat":-1.8093990087509155,
"VoltageAnglePhaseB":0.35456427931785583
}
我已经像这样开始了我的 Jolt 规范:
[
{
"operation": "shift",
"spec": {
"id": "id",
"measurements": {
"*": {
"ts": "ts",
"parameters": {
"*": ""
},
"*": ""
}
}
}
}
]
但是面临从 JSON 中提取名称和值的问题。
有人有想法吗?
解决方案
可以通过 2 个班次操作来完成。首先,将值转移到 valuesArr,同样的方式将参数转移到 parametersArr。然后将值与索引匹配。
[
{
"operation": "shift",
"spec": {
"id": "id",
"measurements": {
"*": {
"ts": "ts",
"values": {
"*": {
"value": "valuesArr"
}
},
"parameters": "parametersArr"
}
}
}
},
{
"operation": "shift",
"spec": {
"id": "id",
"ts": "ts",
"valuesArr": {
"*": "@(2,parametersArr[&])"
}
}
}
]
推荐阅读
- spring-boot - Spring-Kafka 似乎阻止 Spring Boot web 正常运行
- ibm-appid - 我无法在 Kubernetes 上安装 app-identity-and-access-adapter
- c++ - 多个可变参数函数的单个模板参数包?
- java - 使用 java RMI 传递复合对象
- c# - .NET Benchmark 中的 runtimeconfig.json 无效
- css - 如何在样式组件中覆盖 GlobalStyles?
- php - PHP:验证其字段后的表单重定向
- python-3.x - Kears fit_generator() with y=None
- javascript - 与 TypeScript 反应:类型不可分配给类型“IntrinsicAttributes”
- r - 预测时使用的阈值