CSV는

2013-05-03 2 views
1
Orgnization{ 

private String name; 
private String uniqueId; 
private boolean selfRegEnabled; 
private List<Address> addrList; 

public void setAddress(Address a){..} 
public void setName(String name){..} 

} 

Addess{ 
private String type; 
private String line1; 
private String line2; 
private String line3; 
private String city; 
private String state; 
private String zip; 
private String country; 
} 

CSV 머리말 열은 다음과 같습니다 다른 POJO와 POJO합니다CSV는

System.UniqueID, 이름, EnableSelf 등록, Addr1.Type, Addr1.Line1, Addr1.Line2, Addr1.Line3, ADDR1. 도시, Addr1.State, Addr1.Zip, Addr1.Country, Addr2.Type, Addr2.Line1, Addr2.Line2, Addr2.Line3, Addr2.City, Addr2.State, Addr2.Zip, Addr2.Country, Addr3.Type, Addr3.Line1, Addr3.Line2, Addr3.Line3, Addr3.City, Addr3.State, Addr3.Zip, Addr3.Country

내 질문은 아래 링크와 관련 될 수

,563,693 (210)

나는 그 스레드가

우리는 supercsv 같은 기존의 CSV 라이브러리 중 하나와 같은 일을 달성 할 수있다 (I 그 스레드에서 하나를 놓치면 나는 확실하지 않다) 적절한 대답을 가지고 보지 못했다, opencsv ?

내가 supercsv을 사용하고있는 경우는 - 내 콩

답변

1

당신은 확실히 슈퍼 CSV는 CsvDozerBeanReader를 사용하여이 작업을 수행 할 수의 속성을 systemUniqueID하는 CSV의 System.UniqueID 열을 매핑 할 수 있습니다. 이 웹 사이트의 example을 참조하십시오.

this에 대한 답변도 조금 더 자세하게 설명되어 있습니다.

this 최근 질문 : Super CSV (Dozer 사용 여부에 관계없이)를 사용하여 심도있는 색인을 생성하는 다양한 방법을 보여주기 때문에 최근 질문입니다. selfRegEnabled 필드 부울이기 때문에, 당신은 사용해야합니다, 또한

final String[] fieldMapping = new String[]{ 
    "uniqueId", 
    "name", 
    "selfRegEnabled", 
    "addrList[0].type", 
    "addrList[0].line1", 
    "addrList[0].line2", 
    "addrList[0].line3", 
    "addrList[0].city", 
    "addrList[0].state", 
    "addrList[0].zip", 
    "addrList[0].country", 
    "addrList[1].type", 
    "addrList[1].line1", 
    "addrList[1].line2", 
    "addrList[1].line3", 
    "addrList[1].city", 
    "addrList[1].state", 
    "addrList[1].zip", 
    "addrList[1].country", 
    "addrList[2].type", 
    "addrList[2].line1", 
    "addrList[2].line2", 
    "addrList[2].line3", 
    "addrList[2].city", 
    "addrList[2].state", 
    "addrList[2].zip", 
    "addrList[2].country" 
}; 

:

당신의 필드 매핑을 사용 질문에서 CSV를 읽고, 웹 사이트에 CsvDozerBeanReader 예에 따라 cell processors을 사용하여 String 값을 Boolean으로 변환합니다. 이렇게하려면 ParseBool 프로세서를 사용합니다.

+0

귀하의 사이트를 탐색 한 후에 알아 냈습니다. 답변 주셔서 감사합니다. 정말 도움이되었습니다. 하나의 간단한 질문 실제로 selfRegEnabled 열에 대한 csv 레코드를 통해 나는 예/아니오를 얻고있다 - 어떻게 콩에 직접 부울로 매핑 할 수 있습니까? –

+0

[ParseBool] (http://supercsv.sourceforge.net/apidocs/org/supercsv/cellprocessor/ParseBool.html) 셀 프로세서, 즉'새로운 ParseBool ("Yes", "No")을 사용해야 할 것입니다. cellRegEnabled 컬럼에 대해 처리가 필요한 유일한 컬럼 인 경우 프로세서 배열 (CellProcessor [] processors = new CellProcessor [fieldMapping.length])을 생성 한 다음 해당 컬럼을 설정하면됩니다 (processors [2] = 자세한 내용은 웹 사이트의 예제를 참조하십시오. –

+0

그리고 올바른 답을 선택하는 것을 잊지 마십시오 :) –