57.2. アノテーション


作成されたアノテーションを使用すると、以下のようにモデルの概念を POJO にマップできます。

  • レコードのタイプ(CSV、キーと値のペア(例:FIX message)、固定長 …)
  • Link (別のオブジェクトのリンクオブジェクト)
  • DataField とそのプロパティー(int、type、…)
  • KeyValuePairField (FIX F メッセージのように key = value 形式)
  • セクション(ヘッダー、ボディー、フッターセクションを識別するため)
  • OneToMany,
  • BindyConverter,
  • FormatFactories

本セクションでは、それらについて説明します。

57.2.1. 1.CsvRecord

CsvRecord アノテーションは、モデルのルートクラスを特定するために使用されます。これは CSV ファイルの record = "a line" を表し、複数の子モデルクラスにリンクできます。

Expand
アノテーション名レコードの種類レベル

CsvRecord

CSV

クラス

Expand
パラメーター名タイプ必須/任意デフォルト値Info

separator

文字列

 

レコードをトークンに分割するために使用されるセパレーター(必須)- ',' または ';' または anything にすることができます。サポートされる空白文字はタブ(\t)のみです。その他の空白(スペース)はサポートされません。この値は正規表現として解釈されます。正規表現(| 記号など)で特別な意味を持つ記号を使用する場合は、'|' のようにマスクする必要があります。

allowEmptyStream

boolean

 

false

allowEmptyStream パラメーターを使用すると、CSV ファイルの認識不可能なストリームを識別できます。

autospanLine

boolean

 

false

Last record span rest of line (任意)- 有効にすると、最後の列が行の最後(コメントの場合など)に自動的にスパンされます。たとえば、行にすべての文字、区切り文字文字を含むことができます。

crlf

文字列

 

WINDOWS

各レコードの後にキャリッジリターンを追加するために使用される文字(オプション)。使用するキャリッジリターン文字を定義できます。事前に一覧表示されている 3 つの値以外の値を指定すると、入力した値(カスタム)が CRLF 文字として使用されます。WINDOWS、UNIX、MAC、または custom の 3 つの値を使用できます。

endWithLineBreak

boolean

 

true

CSV ファイルが改行文字で終了するかどうか(オプション)の場合の endWithLineBreak パラメーターフラグ

generateHeaderColumns

boolean

 

false

generateHeaderColumns パラメーターを使用すると、CSV で列の名前が含まれるヘッダーを生成することができます。

isOrdered

boolean

 

false

メッセージが出力で順序付けされる必要があるかどうかを示します。

name

文字列

  

レコードを記述する名前(オプション)

quote

文字列

 

"

指定の引用符文字(オプション)で列をマーシャリングするかどうか - CSV の生成時にフィールドの引用符文字を指定できます。このアノテーションはモデルのルートクラスに関連付けられており、一度宣言する必要があります。

引用

boolean

 

false

マーシャリング時に値(およびヘッダー)を引用符で囲む必要があるかどうかを示します(オプション)。

quotingEscaped

boolean

 

false

引用時に値をエスケープする必要があるかどうかを示します(オプション)。

removeQuotes

boolean

 

true

アンマーシャリングが各フィールドの引用符を削除しようとすると、remove quotes パラメーターフラグ

skipField

boolean

 

false

skipField パラメーターを使用すると、CSV ファイルのフィールドをスキップできます。一部のフィールドが必要ない場合は、省略できます。

skipFirstLine

boolean

 

false

skipFirstLine パラメーターを使用すると、CSV ファイルの最初の行をスキップできます。この行には、多くの場合、列定義が含まれます。

case 1 : separator = ','

CSV レコードのフィールドを分離するために使用されるセパレーターは 、、 です。

10, J, Pauline, M, XD12345678, Fortis Dynamic 15/15, 2500, USD, 08-01-2009
@CsvRecord( separator = "," )
public Class Order {

}

case 2 : separator = ';'

以前のケースと比較します。ここでのセパレーターは で、ではなく になります。

10; J; Pauline; M; XD12345678; Fortis Dynamic 15/15; 2500; USD; 08-01-2009
@CsvRecord( separator = ";" )
public Class Order {

}

case 3 : separator = '|'

以前のケースと比較します。ここでの区切り文字は、ではなく | です。

10| J| Pauline| M| XD12345678| Fortis Dynamic 15/15| 2500| USD| 08-01-2009
@CsvRecord( separator = "\\|" )
public Class Order {

}

case 4 : separator = '\",\"'

Camel 2.8.2 以前に適用

CSV レコードの解析されるフィールドに 、、または が含まれ、 これはセパレーターとして使用されます。これは区切り文字としても、Camel バインドにこのケースの処理方法を示す別のストラテジーを見つける必要があります。 データを含むフィールドを定義するには、一重引用符または二重引用符を使用します(例:'10'、'Street 10, NY'、'USA'、または "10"、"Street 10, NY"、"USA")、または "10"、"Street 10, NY"、"USA")。

Expand

__

この場合、単一引用符または二重引用符の行の最初の文字と最後の文字はバインドによって削除されます。

"10","J","Pauline"," M","XD12345678","Fortis Dynamic 15,15","2500","USD","08-01-2009"
@CsvRecord( separator = "\",\"" )
public Class Order {

}

Bindy は、CSV からオブジェクトへのアンマーシャリング時にレコードが一重引用符または二重引用符で囲まれているかどうかを自動的に検出し、これらの引用符を自動的に削除します。したがって、セパレーターには引用符を含め ない でくださいが、以下のようにします。

"10","J","Pauline"," M","XD12345678","Fortis Dynamic 15,15","2500","USD","08-01-2009"
@CsvRecord( separator = "," )
public Class Order {

}

オブジェクトから CSV にマーシャリングし、引用符を使用する場合は、以下のように @CsvRecordquote 属性を使用して、使用する引用符を指定する必要があります。

@CsvRecord( separator = ",", quote = "\"" )
public Class Order {

}

case 5 : separator & skipFirstLine

この機能は、クライアントがファイルの最初の行(データフィールドの名前)に希望する場合に便利です。

order id, client id, first name, last name, isin code, instrument name, quantity, currency, date

解析プロセス中に最初の行をスキップする必要があることをバインドさせるには、属性を使用します。

@CsvRecord(separator = ",", skipFirstLine = true)
public Class Order {

}

case 6 : generateHeaderColumns

生成された CSV の最初の行で を追加するには、以下のようなアノテーションで generateHeaderColumns 属性を true に設定する必要があります。

@CsvRecord( generateHeaderColumns = true )
public Class Order {

}

その結果、アンマーシャリングプロセス中に Bindy は、以下のような CSV を生成します。

order id, client id, first name, last name, isin code, instrument name, quantity, currency, date
10, J, Pauline, M, XD12345678, Fortis Dynamic 15/15, 2500, USD, 08-01-2009

case 7 : carriage return

camel-bindy を実行するプラットフォームが Windows ではなく Macintosh または Unix の場合は、以下のように crlf プロパティーを変更できます。WINDOWS、UNIX、または MAC の 3 つの値を使用できます。

@CsvRecord(separator = ",", crlf="MAC")
public Class Order {

}

また、何らかの理由で別の行末文字を追加する必要がある場合は、crlf パラメーターを使用して指定することもできます。以下の例では、行をコンマで終わり、その後に改行文字を付けることができます。

@CsvRecord(separator = ",", crlf=",\n")
public Class Order {

}

case 8 : isOrdered

モデルから CSV レコードを作成するときに従う順序は、解析中に使用した順序とは異なる場合があります。この場合、属性 isOrdered = true を使用して、これを DataField アノテーションの属性 位置 と組み合わせて使用できます。

@CsvRecord(isOrdered = true)
public Class Order {

   @DataField(pos = 1, position = 11)
   private int orderNr;

   @DataField(pos = 2, position = 10)
   private String clientNr;

}
Expand

__

pos はファイルストリームを解析するために使用されますが、位置 は CSV の生成に使用されます。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る