java - 使用 JOLT 解析器无法获得预期的输出
问题描述
我有以下input
:
[
{
"ownerId": "XTV7I728",
"vehicleId": "999",
"engines": [
{
"engineId": "1",
"engineName": "Standard Engine",
"engineHp": 300
},
{
"engineId": "2",
"engineName": "Custom Engine",
"engineHp": 450
}
]
}
]
我需要如下expected
输出:
[{
"ownerId": "XTV7I728",
"vehicleId": "999",
"engines":{
"engineId": "1",
"engineName": "Standard Engine",
"engineHp": 300
}
},
{
"ownerId": "XTV7I728",
"vehicleId": "999",
"engines":{
"engineId": "2",
"engineName": "Custom Engine",
"engineHp": 450
}
}]
我在下面尝试过,spec
但它抛出了一个错误:
[{
"ownerId": "ownerId",
"*": {
"vehicleId": "vehicleId",
"engineId": "engineId",
"engineHp": "engineHp"
}
}]
Error
:
Error running the Transform.
JOLT Chainr 'operation' must implement Transform or ContextualTransform at index:0.
请让我知道我哪里出错了。
解决方案
您必须指定操作(如果使用链规范),然后指定执行spec
对象树的实际“行走”的部分。这应该有效:
[
{
"operation": "shift",
"spec": {
"*": {
"engines": {
"*": {
"@(2,ownerId)": "[#2].ownerId",
"@(2,vehicleId)": "[#2].vehicleId",
"*": "[#2].&"
}
}
}
}
}
]
推荐阅读
- python - 如何在linux ubuntu终端上安装python3.9?
- sql - 检查每个值的数据类型的存储过程
- php - 从 SELECT 获取结果,然后将其更新到数据库 MySQL 和 PHP
- javascript - 如何单击具有更多边界的 svg 行标签?
- python - python数据帧上的平均值和最大值
- python - 如何找到将项目移动到堆栈中某个位置的最小移动次数?
- javascript - 访问集合组查询中每个 DocumentReference 的父数据
- sharepoint - 获取 java.lang.IllegalStateException: MessageDrivenBean: Timer Service methods not allowed from state = CREATING
- javascript - 如何在 wordpress 中删除 hotjar 脚本
- java - Logstash:运行 logstash.bat 时出现“错误:无法找到或加载主类 Heal”