More error handling when parsing book.json

When the JSON contains a duplicate key, JSONObjectWithData on iOS 5.1 will return nil. Unfortunately, the returned error is not very helpful, but it's at least better than the previous version of the code (which was printing the error in the wrong place).
See #904.