Well, you could create another class to get the full Json, as a response class:
case class Response(bookId: String, bookName: String, authorNam: String, authorCountry: String){}
You map your response, that i am assuming comes from a server or other service, and then from this you separate into your two other classes, mapping them.
The better you can do in these cases is getting the whole response that you'll use in your use case, or in your code in general, and then treating the data in your code, before displaying or using the received data.
EDIT: to map the response, using your example, you'll have
Response(1, Skype, bla bla, Poland)
then you would do something like
Book(Response.bookID, Response.bookName)
Author(Response.authorName, Response.authorCountry)
Other approach is having your Response being a case class of the other classes, nesting the case classes, so you'll have both classes inside your Response.
Hope it helps. Cheers!