Apache CamelXmlJsonDataFormatマーシャリングを使用してXML文字列をJSON文字列に変換する方法

RAJESH

以下のプログラムのXML文字列をJSON文字列に変換しようとしています。

ファイルからは変換できますが、文字列からは変換できません。

これについて何か考えはありますか?

package com.tda.topology;

import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;

import org.apache.camel.Exchange;   
import org.apache.camel.dataformat.xmljson.XmlJsonDataFormat;

public class Demo2 {

public static void main(String[] args) throws Exception {
    String xmlstring = "<soapenv:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:ser=\"http://services.web.post.list.com\"><soapenv:Header><authInfo xsi:type=\"soap:authentication\" xmlns:soap=\"http://list.com/services/SoapRequestProcessor\"><!--You may enter the following 2 items in any order--><username xsi:type=\"xsd:string\">[email protected]</username><password xsi:type=\"xsd:string\">password</password></authInfo></soapenv:Header></soapenv:Envelope>";
    XmlJsonDataFormat xmlJsonDataFormat = new XmlJsonDataFormat();
    xmlJsonDataFormat.setEncoding("UTF-8");
    xmlJsonDataFormat.setForceTopLevelObject(true);
    xmlJsonDataFormat.setTrimSpaces(true);
    xmlJsonDataFormat.setRootName("newRoot");
    xmlJsonDataFormat.setSkipNamespaces(true);
    xmlJsonDataFormat.setRemoveNamespacePrefixes(true);

    Exchange exchange;
    //exchange.setIn(in);

    InputStream stream = new ByteArrayInputStream(xmlstring.getBytes(StandardCharsets.UTF_8));
    //xmlJsonDataFormat.getSerializer().readFromStream(stream).toString();
    //xmlJsonDataFormat.marshal(exchange, graph, stream);

}
} 
fiw

xmlJsonDataFormatオブジェクトでstartを呼び出し、xom jarをクラスパスに追加する必要があります(まだ存在しない場合)。これは私のために働いたものです:

xmlJsonDataFormat.start();
String json = xmlJsonDataFormat.getSerializer().readFromStream(stream).toString();

ソースを調べることでこれを解決することができました。getSerialiserがnullを返していたので、xmlJsonDataFormatでシリアライザーが初期化された場所を検索しました。これは、スーパークラスのstartメソッドで呼び出されるdoStartメソッドによって行われました。

免責事項:このようにXmlJsonDataFormatを使用することになっているのかどうかはわかりません。通常、ラクダのルートで使用するためのものです。from("direct:marshal").marshal(xmlJsonFormat).to("mock:json");ただし、具体的な使用例はわかりません。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Apache modrewriteを使用してクエリ文字列を変更する

分類Dev

Apache Spark:JSON文字列を含む列をScalaSparkの新しいデータフレームに変換する

分類Dev

Apache Hive:文字列をタイムスタンプに変換する方法は?

分類Dev

Apache Nifiを使用してCSVをJSONに変換する方法は?

分類Dev

追加のフィールドでCSVコンテンツデータを強化し、Apacheキャメルを使用して区切り文字としてパイプを使用してテキストファイルに変換する方法

分類Dev

Apacheリライトルールを使用してクエリ文字列データを送信する

分類Dev

Apache POIを使用してHSSFWorkbookをXSSFWorkbookに変換する方法

分類Dev

スキーマ変換ツールとしてApacheドリルを使用する

分類Dev

Apache Camel Bindyを使用して2つのXMLタグを1つのXMLにマージする方法

分類Dev

CSVデータをDataframeに読み込み、Apache Spark(Java)を使用して配列に変換する

分類Dev

Apache Velocityテンプレートのクエリ文字列を置き換える方法は?

分類Dev

JSON文字列を定数にマーシャリング解除する

分類Dev

ストリームAPIを使用して文字列を文字のシーケンスに変換する方法

分類Dev

コマンドラインを使用してApacheログの日時形式を変換する

分類Dev

Apache POI を使用して上付き文字を追加する方法

分類Dev

オブジェクトを文字列ランタイムApacheエラーにキャストします:

分類Dev

Scala-RDDをフィルタリングする方法org.apache.spark.rdd.RDD [文字列]]

分類Dev

Apacheディスパッチャーはクエリ文字列ルールを書き換えます

分類Dev

クエリ文字列apacheを書き換えます

分類Dev

Apache Spark Log4Jメッセージをフィルタリングして、特定の文字列を含むメッセージのみを保持します

分類Dev

複数のクエリ文字列を使用したApacheの書き換え

分類Dev

Apacheを使用してWeblogicクラスター上のシングルページアプリケーションにプロキシする方法

分類Dev

apacheライブラリなしで空白に基づいて行を文字列に分割する

分類Dev

Apache SSLitermediateCA.cerをopensslを使用してcrtに変換する

分類Dev

JSONにマーシャリングするときに、型intをconstの名前の文字列に変換します

分類Dev

SparkRunnerを使用してApacheビームを再シャッフルする方法

分類Dev

sedを使用してapache2.confファイルの複数行の文字列を置き換える

分類Dev

クエリ文字列を使用したApacheリダイレクト

分類Dev

クエリ文字列を使用したApacheリダイレクト

Related 関連記事

  1. 1

    Apache modrewriteを使用してクエリ文字列を変更する

  2. 2

    Apache Spark:JSON文字列を含む列をScalaSparkの新しいデータフレームに変換する

  3. 3

    Apache Hive:文字列をタイムスタンプに変換する方法は?

  4. 4

    Apache Nifiを使用してCSVをJSONに変換する方法は?

  5. 5

    追加のフィールドでCSVコンテンツデータを強化し、Apacheキャメルを使用して区切り文字としてパイプを使用してテキストファイルに変換する方法

  6. 6

    Apacheリライトルールを使用してクエリ文字列データを送信する

  7. 7

    Apache POIを使用してHSSFWorkbookをXSSFWorkbookに変換する方法

  8. 8

    スキーマ変換ツールとしてApacheドリルを使用する

  9. 9

    Apache Camel Bindyを使用して2つのXMLタグを1つのXMLにマージする方法

  10. 10

    CSVデータをDataframeに読み込み、Apache Spark(Java)を使用して配列に変換する

  11. 11

    Apache Velocityテンプレートのクエリ文字列を置き換える方法は?

  12. 12

    JSON文字列を定数にマーシャリング解除する

  13. 13

    ストリームAPIを使用して文字列を文字のシーケンスに変換する方法

  14. 14

    コマンドラインを使用してApacheログの日時形式を変換する

  15. 15

    Apache POI を使用して上付き文字を追加する方法

  16. 16

    オブジェクトを文字列ランタイムApacheエラーにキャストします:

  17. 17

    Scala-RDDをフィルタリングする方法org.apache.spark.rdd.RDD [文字列]]

  18. 18

    Apacheディスパッチャーはクエリ文字列ルールを書き換えます

  19. 19

    クエリ文字列apacheを書き換えます

  20. 20

    Apache Spark Log4Jメッセージをフィルタリングして、特定の文字列を含むメッセージのみを保持します

  21. 21

    複数のクエリ文字列を使用したApacheの書き換え

  22. 22

    Apacheを使用してWeblogicクラスター上のシングルページアプリケーションにプロキシする方法

  23. 23

    apacheライブラリなしで空白に基づいて行を文字列に分割する

  24. 24

    Apache SSLitermediateCA.cerをopensslを使用してcrtに変換する

  25. 25

    JSONにマーシャリングするときに、型intをconstの名前の文字列に変換します

  26. 26

    SparkRunnerを使用してApacheビームを再シャッフルする方法

  27. 27

    sedを使用してapache2.confファイルの複数行の文字列を置き換える

  28. 28

    クエリ文字列を使用したApacheリダイレクト

  29. 29

    クエリ文字列を使用したApacheリダイレクト

ホットタグ

アーカイブ