2016-11-08 2 views
0

Я хотел бы переместить объект JSON на один уровень с помощью Jolt. Вот мой ввод данных:Переименовать объект JSON с помощью Jolt

{ 
    "rating": { 
     "primary": { 
      "value": 3, 
      "max": 5 
     }, 
     "quality": { 
      "value": 3, 
      "max": 7 
     } 
    } 
} 

Я использую следующий спецификации файла:

[ 
    { 
    "operation": "shift", 
    "spec": { 
     "$": "NEWPARENT" 
    } 
    } 
] 

Я в настоящее время производит этот выход:

{ 
    "NEWPARENT" : "root" 
} 

Однако моя цель состоит в том, чтобы произвести :

{ 
    "NEWPARENT": { 
    "rating": { 
     "primary": { 
     "value": 3, 
     "max": 5 
     }, 
     "quality": { 
     "value": 3, 
     "max": 7 
     } 
    } 
    } 
} 

Can кто-нибудь поможет мне создать правильный файл spec?

ответ

1

Spec

[ 
    { 
    "operation": "shift", 
    "spec": { 
     "@": "NEWPARENT" 
    } 
    } 
] 

FYI, «корень», вы видите артефакт пути, которые выбивают имеет дело с тем, что входной верхний уровень JSON может быть либо список или карту, и что вы хотите преобразовать список в карту (и наоборот).

Таким образом, толчок «обертывает» вход так, что он «всегда» преобразует карту, которая имеет один ключ «корень» со значением, которое является входом.

+0

Я протестировал это через http://jolt-demo.appspot.com/ и работает, как и было обещано. Спасибо, Мило! – blong