Skip to content

Instantly share code, notes, and snippets.

@Arham4
Last active September 20, 2023 01:26
Show Gist options
  • Select an option

  • Save Arham4/429ee1216e0d7224cb1522ac5a2a0fe2 to your computer and use it in GitHub Desktop.

Select an option

Save Arham4/429ee1216e0d7224cb1522ac5a2a0fe2 to your computer and use it in GitHub Desktop.
Easy Jackson YAML Parsing with Kotlin
data class UserDto(val username: String, val password: String)
val user: UserDto = parseDto("user.yaml", UserDto::class)
username: Test # don't need "" because of configuration
password: 123456
private val mapper = ObjectMapper(YAMLFactory())
.registerModule(KotlinModule())
.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true)
/**
* Takes in a data class (with ::class) and parses it by the fileName provided, returning the appropriate class
* originally provided with parsed data.
*/
fun <T: Any> parseDto(fileName: String, dto: KClass<T>): T {
return Files.newBufferedReader(Paths.get(fileName)).use { mapper.readValue(it, dto.java) }
}
@ngwutadesmond
Copy link

ngwutadesmond commented Jul 10, 2020

Hi, I have been searching over the internet for a solution on how to Parse YML with Kotlin. Then came across your gist. But I've got some question as regards how to join or connect all these together to make it work. Can you direct to probably a project that shows how it was all used? Thank you 😊

@Arham4
Copy link
Author

Arham4 commented Jul 10, 2020 via email

@ngwutadesmond
Copy link

Okay, that's great. Thank you!

@longquanzheng
Copy link

thank you! this is really useful!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment