55.2. 주석


생성된 주석을 다음과 같이 모델의 다른 개념을 POJO에 매핑할 수 있습니다.

  • 레코드 유형(CSV, 키 값 쌍(예: FIX 메시지), 고정 길이(예: FIX)
  • link (다른 오브젝트의 객체 연결)
  • DataField 및 해당 속성(int, type, )
  • KeyValuePairField (예: FIX 재무 메시지와 같은 key = 값 형식)
  • 섹션(헤더, 본문 및 바닥글 섹션을 식별하는)
  • OneToMany,
  • BindyConverter,
  • FormatFactories

이 섹션에서는 이를 설명합니다.

55.2.1. 1. CsvRecord

CsvRecord 주석은 모델의 루트 클래스를 식별하는 데 사용됩니다. 레코드 = "CSV 파일의 줄"을 나타내며 여러 자식 모델 클래스에 연결할 수 있습니다.

주석 이름레코드 유형level

CsvRecord

CSV

class

매개변수 이름유형필수 항목기본값정보

separator

문자열

 

토큰으로 레코드를 분할하는 데 사용되는 구분 기호 - ',' 또는 ';' 또는 ' anything'일 수 있습니다. 지원되는 유일한 공백 문자는 탭(\t)입니다. 다른 공백 문자(공백)는 지원되지 않습니다. 이 값은 정규식으로 해석됩니다. 정규식에 특별한 의미가 있는 기호(예: '|' 기호)를 사용하려면 '|'와 같이 마스킹해야 합니다.

allowEmptyStream

boolean

 

false

allowEmptyStream 매개변수를 사용하면 CSV 파일에 대해 변경할 수 없는 스트림을 사용할 수 있습니다.

autospanLine

boolean

 

false

마지막 레코드 범위는 나머지 행(선택 사항)에 걸쳐 있습니다. - 만약 활성화된 경우 마지막 열이 행 끝에 자동으로 걸쳐 있습니다. 예를 들어, 주석 처리하면 줄이 모든 문자, 구분 기호 문자도 포함할 수 있습니다.

crlf

문자열

 

WINDOWS

각 레코드 (선택 사항) 뒤에 캐리지 리턴을 추가하는 데 사용할 문자 - 사용할 캐리지 반환 문자를 정의할 수 있습니다. 앞에 나열된 세 개 이외의 값을 지정하면 입력하는 값(custom)이 CRLF 문자로 사용됩니다. 세 가지 값(WINDOWS, UNIX, MAC 또는 custom)을 사용할 수 있습니다.

endWithLineBreak

boolean

 

true

CSV 파일이 줄 바꿈으로 끝나야 하는 경우 endWithLineBreak 매개변수 플래그(선택 사항)

generateHeaderColumns

boolean

 

false

generateHeaderColumns 매개변수를 사용하면 열의 이름이 포함된 헤더가 생성된 CSV에 추가할 수 있습니다.

isOrdered

boolean

 

false

메시지를 출력에서 주문해야 하는지 여부를 나타냅니다.

name

문자열

  

레코드를 설명하는 이름(선택 사항)

quote

문자열

 

"

지정된 인용 문자(선택 사항)를 사용하여 열 마샬링 여부 - CSV가 생성될 때 필드의 인용 문자를 지정할 수 있습니다. 이 주석은 모델의 루트 클래스에 연결되며 한 번만 선언해야 합니다.

quoting

boolean

 

false

마샬링(선택 사항)할 때 값(및 헤더)을 인용해야 하는지 여부를 나타냅니다.

quotingEscaped

boolean

 

false

인용할 때 값을 이스케이프해야 하는지 여부를 나타냅니다(선택 사항)

removeQuotes

boolean

 

true

unmarshalling이 각 필드에 대해 따옴표를 제거해야 하는 경우 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 bindy를 처리하는 방법을 알려주는 다른 전략을 찾아야 합니다. 데이터가 쉼표로 포함된 필드를 정의하려면 구분 기호(예: '10', 'Street 10, NY', 'USA' 또는 "10", "Street 10, NY", "USA")로 작은따옴표 또는 큰따옴표를 사용합니다.

__

이 경우 단일 또는 큰따옴표인 줄의 첫 번째 및 마지막 문자는 bindy로 제거됩니다.

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

}

Bindy는 CSV에서 Object로 나눌 때 이러한 따옴표를 자동으로 제거하고 작은따옴표를 자동으로 제거하는지 여부를 자동으로 감지합니다. 따라서 구분 기호에 따옴표를 포함하지 않고 간단히 수행합니다.Therefore, do not include the quotes in the separator, but simply do as below:

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

}

If you want to marshal from Object to CSV and use quotes, then you need to specify which quote character to use, using the quote attribute on the @CsvRecord:

@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 {

}

결과적으로marshaling 프로세스 중에 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

케이스 7: 캐리지 리턴

comel-bindy가 실행되는 플랫폼이 Windows가 아닌 Macintosh 또는 Unix가 아닌 경우 다음과 같이 crlf 속성을 변경할 수 있습니다. 세 가지 값 사용 가능: WINDOWS, UNIX 또는 MAC

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

}

또한 어떤 이유로든 다른 줄 끝 문자를 추가해야 하는 경우 crlf 매개 변수를 사용하여 지정할 수 있습니다. 다음 예제에서는 줄을 쉼표와 줄 바꿈 문자로 끝낼 수 있습니다.In the following example, we can end the line with a comma followed by the newline character:

@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;

}

__

P OS는 파일 스트림을 구문 분석하는 데 사용되며 position 은 CSV를 생성하는 데 사용됩니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.