Невозможно получить правильную структуру массива при преобразовании полезной нагрузки в json в mule

Я беру файл x12 837 в качестве входных данных и конвертирую его в java, а затем в json. Ниже мой код в dataweave

%dw 1.0
%output application/json
---
payload.*"2000_Loop" map {
    Claims: $.*"2300_Loop" map {
        claimnumber: $."1300_CLM".CLM01,
        monetoryamount: $."1300_CLM".CLM02
    } 
}

Когда я пишу приведенный выше код, я получаю результат, как показано ниже:

[
  {
    "Claims": [
      {
        "claimnumber": [
          "945405", "234512"
        ],
        "monetoryamount": [
          5332.54, 876
        ]
      }
    ]
  }
]

Ожидаемый результат:

[
  {
    "Claims": [
      {
        "claimnumber": "945405",
        "monetoryamount": 5332.54
      }
    ],
    "Claims": [
      {
        "claimnumber": "234512",
        "monetoryamount": 876
      }
    ]
  }
]

И мой входной файл - x12, который «я преобразовал в java для передачи вышеупомянутому компоненту dataweave:

ISA*00*          *00*          *ZZ*SENDER         *ZZ*RECEIVER       *111219*1340*^*00501*000001377*0*T*>
GS*HC*SENDER*RECEIVER*20111219*1340*1377*X*005010X222
ST*837*0001*005010X222
BHT*0019*00*565743*20110523*154959*CH
NM1*41*2*SAMPLE INC*****46*496103
PER*IC*EDI DEPT*EM*[email protected]*TE*3305551212
NM1*40*2*PPO BLUE*****46*54771
HL*1**20*1
PRV*BI*PXC*333600000X
NM1*85*2*EDI SPECIALTY SAMPLE*****XX*123456789
N3*1212 DEPOT DRIVE
N4*CHICAGO*IL*606930159
REF*EI*300123456
HL*2*1*22*1
SBR*P********BL
NM1*IL*1*CUSTOMER*KAREN****MI*YYX123456789
N3*228 PINEAPPLE CIRCLE
N4*CORA*PA*15108
DMG*D8*19630625*M
NM1*PR*2*PPO BLUE*****PI*54771
N3*PO BOX 12345
N4*CAMP HILL*PA*17089
HL*3*2*23*0
PAT*19
NM1*QC*1*CUSTOMER*COLE
N3*228 PINEAPPLE CIRCLE
N4*CORA*PA*15108
DMG*D8*19940921*M
CLM*945405*5332.54***12>B>1*Y*A*Y*Y*P
HI*BK>2533
LX*1
SV1*HC>J2941*5332.54*UN*84***1
DTP*472*RD8*20110511-20110511
REF*6R*1099999731
NTE*ADD*GENERIC 12MG CARTRIDGE
LIN**N4*00013264681
CTP****7*UN
NM1*DK*1*PATIENT*DEBORAH****XX*12345679030
N3*123 MAIN ST*APT B
N4*PITTSBURGH*PA*152181871
CLM*234512*876***12>B>1*Y*A*Y*Y*P
HI*BK>2533
LX*1
SV1*HC>J2941*5332.54*UN*84***1
DTP*472*RD8*20110511-20110511
REF*6R*1099999731
NTE*ADD*GENERIC 12MG CARTRIDGE
LIN**N4*00013264681
CTP****7*UN
NM1*DK*1*PATIENT*DEBORAH****XX*12345679030
N3*123 MAIN ST*APT B
N4*PITTSBURGH*PA*152181871
SE*63*0001
GE*1*1377
IEA*1*000001377

%dw 1.0
%output application/json

payload.*"2000_Loop" map {
  Claims: $.*"2300_Loop" map {
    Claim: $."1300_CLM" map {
      claimnumber: $.CLM01,
      monetoryamount: $.CLM02
    }
  }
}

person varsha hunuswadkar    schedule 28.10.2016    source источник
comment
Что значит преобразовать в java?   -  person David Dossot    schedule 29.10.2016
comment
Я использовал dataweave и преобразовал его в выходное приложение / java   -  person varsha hunuswadkar    schedule 31.10.2016


Ответы (1)


Вы пробовали следующее выражение?

%dw 1.0
%output application/json
---
payload.*"2000_Loop" map {
    Claims: $.*"2300_Loop".*"1300_CLM" map {
        claimnumber: $.CLM01,
        monetoryamount: $.CLM02
    } 
}
person sulthony h    schedule 29.10.2016
comment
Я пробовал это, он говорит: Заявления: $ .2300_Loop.1300_CLM map {^ Найдено несоответствие типов для оператора 'map': null,: function required: array,: function - person varsha hunuswadkar; 31.10.2016
comment
Попробуйте добавить символ звездочки, чтобы ссылаться на повторяющиеся элементы. Например: Claims: $.*"2300_Loop".*"1300_CLM" map { ... } - person sulthony h; 01.11.2016