For the past eight months, I have have been playing and programming in Scala for fun. One of the many things I wanted to do was to convert a collection of case classes into a CSV file. This sounds like a problem that has already been solved see pure CSV , and it has... to an extent.
In my specific use case, I wanted to parse some data from JSON into a case class and eventually convert a collection of these classes into a CSV file. The problem I was running into was that the serialization library I was using, [GSON], sets JSON
null values as Java
null values, but Pure CSV did not like these
null values and was throwing
I ended up creating a simple implementation based on this SO answer where I assign default values to different value types. Here is what I ended up doing:
Here I'm using the
com.github.tototoshi.csv.CSVWriter to write to a csv file, and the
org.apache.commons.lang3.StringEscapeUtils to format values, but other than that it should be all Scala.
The intention of the toMap method is to allow you to pass a function that check the value for null and set a default one. I have provided default formatting method that should cover some cases, but you can create your own and pass it to the