I have a Json string as
val configInfo = {
"car": {
"requesters": {
"request1": "key1",
"request2": "key2"
},
"provider": {
"request1": "key3",
"request2": "key4"
}
},
"truck": {
"requesters": {
"request1": "key2",
"request2": "key3"
},
"provider": {
"request1": "key2",
"request2": "key3"
}
}
}
I have the following case class to decode json string.
final case class TenantSettings(requesters: Map[String, String], provider: Map[String, String] = Map.empty)
Also, providers in above case class is optional, it may or may not be present in json string.
I want to decode this using circe to
val value = decode[Map[String, TenantSettings]](configInfo)
I understand I need to use custom circe codec, but I am unable to do it, Can someone please help out on this.