Most popular JSON libraries for Scala have the ability to serialize and deserialize to case classes.
Unfortunately, until Scala 2.11 is released, there is a restriction
If you're using lenses anyway, just nest your case classes. You'll have more potential for reuse of data, and the main reason not to nest is to avoid monstrosities like
record.copy(person = record.person.copy(name = record.person.name.capitalize))
which are (largely) solved if you use lenses. JSON can handle nested classes.