Thank you Li!
`ujson.Value` is in chapter 8.1.1. of your excellent Hands-On Scala book I've bought.
Turns out for arbitrary JSON you can do this:
val rawData = read[ujson.Value](JSONstring)
For JSON where you know most of the structure but have mixed types for object values:
https://jsonplaceholder.typicode.com/todos val todoData = read[Seq[Map[String,ujson.Value]]](todoJSON)