1

チャネル Aでは、XML を input.Incoming XML として取得しています。

 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<bookstore>
<books>
<book>
<title>SpringInAction</title>
<NoOfCopies>10</NoOfCopies>
</book>
<book>
<title>HibernateInAction</title>
<NoOfCopies>8</NoOfCopies>
</book>
<book>
<title>JSFInAction</title>
<NoOfCopies>5</NoOfCopies>
</book>
<book>
<title>StrutsInAction</title>
<NoOfCopies>9</NoOfCopies>
</book>
<book>
<title>JSPInAction</title>
<NoOfCopies>4</NoOfCopies>
</book>
</books>
</bookstore>

ソースの Edit Transformer でこの XML を解析し、JavaScript オブジェクトを作成して、この JavaScript オブジェクトを次のようにチャネル マップに配置しています。

var book=new Object();
book.title = msg['books']['book'][0]['title'].toString();
book.copies = msg['books']['book'][0]['NoOfCopies'].toString();
logger.info("book "+book);
channelMap.put("book",book);

この JavaScript オブジェクトを、Channel A の宛先から別のChannel Bに渡したいと思います。Channel Bは、この JavaScript オブジェクトを入力として受け取り、残りの処理を行います。Mirth では可能ですか?

私は Mirth バージョン 2.2.1.5861 を使用しています。

4

2 に答える 2

1

チャネル変数を保存する前に、シリアル化します (json オブジェクト)。

チャネル宛先で、「book」変数を書き出します。

だから、このようなもの:

変圧器で

var book=new Object();
book.title = msg['books']['book'][0]['title'].toString();
book.copies = msg['books']['book'][0]['NoOfCopies'].toString();
logger.info("book "+book);

var Jbook = JSON.stringify(book);
channelMap.put("Jbook",Jbook );

宛先テンプレート内

${jbook}

次に、受信チャネルで

var book = JSON.parse(msg.toString());

私はこのコードを検証していませんが、コーディング戦略を示しているはずです。

JSON に関する Mirth のディスカッションを参照してください。

また、 area51.StackExchangeにある HealthcareIT プロジェクトの提案もご覧ください。これは良い質問です。

于 2013-07-18T13:21:36.383 に答える