Как отформатировать образец данных Dataweave в LinkedHashMap - PullRequest
0 голосов
/ 04 марта 2019

У меня есть LinkedHashMap и LinkedHashMap$Entry полезная нагрузка

{box=
   {
     0={plate=false, id=8269999, knife=1}, 
     1={plate=true, id=8260118, knife=1}
   }
}

Я хочу применить эту структуру к моим образцам данных преобразования Dataweave.Я придумал это, но преобразование не выполняется во время выполнения, а предварительный просмотр показывает, что это правильное преобразование ...

%dw 1.0
%output application/java
---
[{
  "box": {
    "0": {
      "plate": {
        plate: false
      } as :object {
        class : "java.util.Object"
      },
      "id": {
        id: 8269999
      } as :object {
        class : "java.util.Object"
      },
      "knife": {
        knife: 1
      } as :object {
        class : "java.util.Object"
      }
    } as :object {
      class : "java.util.Object"
    },
    "1": {
      "plate": {
        plate: true
      } as :object {
        class : "java.util.Object"
      },
      "id": {
        id: 8260118
      } as :object {
        class : "java.util.Object"
      },
      "knife": {
        knife: 1
      } as :object {
        class : "java.util.Object"
      }
    } as :object {
      class : "java.util.Object"
    }
  } as :object {
    class : "java.util.Object"
  }
} as :object {
  class : "java.util.LinkedHashMap"
}]

1 Ответ

0 голосов
/ 05 апреля 2019

java.util.Object не имеет полей, таких как нож или тарелка, поэтому нет смысла использовать его.Вам нужно просто удалить все «as: object ...» в вашем скрипте, и DataWeave будет возвращать карты по мере необходимости.

Также обычно на записи в карте (т.е. LinkedHashMap $ Entry) не ссылаютсяпрямо на всех.Они представляют собой подробности реализации конкретной реализации карты.

Просто подумайте с точки зрения интерфейса карты, а не конкретной реализации, такой как LinkedHashMap.

...