2015-07-22 131 views
1

我需要的HL7消息轉換成JSON所以我用哈皮將消息轉換爲XML,然後使用JSON庫的XML轉換爲JSON,XML的輸出是轉換HL7消息到JSON

<?xml version="1.0" encoding="UTF-8"?> 
<ADT_A01 xmlns="urn:hl7-org:v2xml"> 
    <MSH> 
     <MSH.1>|</MSH.1> 
     <MSH.2>^~\&amp;</MSH.2> 
     <MSH.3> 
      <HD.1>7EDIT</HD.1> 
     </MSH.3> 
     <MSH.4> 
      <HD.1>7EDIT.COM</HD.1> 
     </MSH.4> 
     <MSH.5> 
      <HD.1>IS</HD.1> 
     </MSH.5> 
     <MSH.6> 
      <HD.1>FACILITY</HD.1> 
     </MSH.6> 
     <MSH.7>20150721160705</MSH.7> 
     <MSH.8>S</MSH.8> 
     <MSH.9> 
      <MSG.1>ADT</MSG.1> 
      <MSG.2>A01</MSG.2> 
     </MSH.9> 
     <MSH.10>MSG00001</MSH.10> 
     <MSH.11> 
      <PT.1>P</PT.1> 
     </MSH.11> 
     <MSH.12> 
      <VID.1>2.6</VID.1> 
     </MSH.12> 
     <MSH.13>1</MSH.13> 
     <MSH.14>ST</MSH.14> 
     <MSH.15>AL</MSH.15> 
     <MSH.16>AL</MSH.16> 
     <MSH.17>972</MSH.17> 
     <MSH.18>WINDOWS-1252</MSH.18> 
    </MSH> 
    <EVN> 
     <EVN.1>A01</EVN.1> 
     <EVN.2>20150721160852</EVN.2> 
     <EVN.3>20150721160854</EVN.3> 
     <EVN.4>01</EVN.4> 
     <EVN.5> 
      <XCN.1>st</XCN.1> 
     </EVN.5> 
     <EVN.6>20150721160917</EVN.6> 
     <EVN.7> 
      <HD.1>IS</HD.1> 
     </EVN.7> 
    </EVN> 
    <PID> 
     <PID.1>1</PID.1> 
     <PID.2> 
      <CX.1>ST</CX.1> 
      <CX.4> 
       <HD.1>IS</HD.1> 
      </CX.4> 
     </PID.2> 
     <PID.3> 
      <CX.1>12345</CX.1> 
     </PID.3> 
     <PID.5> 
      <XPN.1> 
       <FN.1>JOSEPH</FN.1> 
      </XPN.1> 
     </PID.5> 
    </PID> 
    <PV1> 
     <PV1.2>B</PV1.2> 
     <PV1.3> 
      <PL.1>IS</PL.1> 
     </PV1.3> 
     <PV1.4>A</PV1.4> 
     <PV1.5> 
      <CX.1>S</CX.1> 
     </PV1.5> 
     <PV1.6> 
      <PL.1>S2</PL.1> 
     </PV1.6> 
     <PV1.7> 
      <XCN.1>REALM</XCN.1> 
     </PV1.7> 
     <PV1.8> 
      <XCN.1>HANNAH</XCN.1> 
     </PV1.8> 
     <PV1.9> 
      <XCN.1>DOCTOR</XCN.1> 
     </PV1.9> 
     <PV1.10>SUR</PV1.10> 
     <PV1.11> 
      <PL.1>PC</PL.1> 
     </PV1.11> 
     <PV1.12>S</PV1.12> 
     <PV1.13>R</PV1.13> 
     <PV1.14>7</PV1.14> 
     <PV1.15>A0</PV1.15> 
     <PV1.16>IN</PV1.16> 
     <PV1.17> 
      <XCN.1>NUMBER</XCN.1> 
     </PV1.17> 
     <PV1.18>AM</PV1.18> 
     <PV1.19> 
      <CX.1>NUM</CX.1> 
     </PV1.19> 
     <PV1.20> 
      <FC.1>FC</FC.1> 
     </PV1.20> 
     <PV1.21>PR</PV1.21> 
     <PV1.22>S</PV1.22> 
     <PV1.23>SS</PV1.23> 
     <PV1.24>S</PV1.24> 
    </PV1> 
</ADT_A01> 

這裏的輸出就像是segmenName.FieldName(MSH.1),所以Json也是一樣的,而不是segmenName.FieldName,我需要給每個字段一個平庸的名字,我無法弄清楚該怎麼做此

我需要將Xml中的元素映射到JSON中的不同鍵值

回答

0

On這樣做的方法是對字段/名稱進行映射,並遍歷所有JSON在映射中尋找字段,當找到字段時,將其名稱更改爲映射中的對應名稱。

您可能無法更改要遍歷的JSON,在這種情況下,遍歷應該克隆結構,創建具有相應名稱的JSON節點。

您的JSON工具可能有一種遞歸解析和遍歷整個JSON對象的方法。

另一種方法是實現XML-JSON轉換(這非常簡單),並在該轉換中包含「名稱映射」步驟。