मैं पीओजेओ में एक CSV फ़ाइल को पार्स करने के लिए Jackson CSV का उपयोग कर रहा हूं। मेरी समस्या यह है कि यदि सीएसवी में एक पंक्ति में बहुत कम कॉलम हैं, तो पार्सर शिकायत नहीं करता है और बाकी फ़ील्ड को शून्य में सेट करता है।जैक्सन सीएसवी गायब कॉलम
पार्स कोड:
CsvMapper csvMapper = new CsvMapper();
csvMapper.addMixInAnnotations(Person.class, PersonCsvMixin.class);
CsvSchema schema = csvMapper.schemaFor(Person.class).withHeader();
MappingIterator<Person> it = csvMapper.reader(dataClass).with(schema).readValues(csv);
LinkedList<Person> output = new LinkedList<>();
while(it.hasNext()) {
output.push(it.next());
}
Mixin:
import com.fasterxml.jackson.annotation.*;
@JsonPropertyOrder(value = { "FirstName", "LastName", "Title"})
public abstract class Person {
@JsonProperty("LastName")
public abstract String getLastName();
@JsonProperty("FirstName")
public abstract String getFirstName();
@JsonProperty("Title")
public abstract String getTitle();
}
डाटा वर्ग:
public class OfficespaceInputEmployee implements Serializable{
protected String firstName;
protected String lastName;
protected String title;
// .. getters and setters
}
अगर मैं निम्नलिखित की तरह एक फ़ाइल को पार्स, कोई त्रुटि भी बीच रिकॉर्ड हालांकि पाए जाते हैं दो फ़ील्ड गुम है इसके बजाय, अंतिम नाम और शीर्षक बन null
"FirstName", "LastName", "Title"
"John", "Smith", "Mr"
"Mary"
"Peter", "Jones", "Dr"
वहाँ कि सक्षम करने के लिए इस बजाय त्रुटि के कारण होगा एक विशेषता है?
अपना मानचित्रण इटरेटर उपयोग दिखाएं। –
@LaurentiuL। जोड़ा मैपिंग इटरेटर उपयोग – rewolf