Maybe I'm being incredibly stupid, but these classes seem to choke on whitespace. The code isn't capable of parsing something simple like:
{ "firstName": "Jim", "lastName": "Morrison" }
I thought the culprit might be NSScanner_Extensions skipWhitespace. Surely this should be using whitespaceAndNewlineCharacterSet instead of whitespaceCharacterSet?
So, I tried changing it. This got the scanner a couple of characters further but it still bails out at the first opportunity. I had a look at the unit tests to see whether they would prove my suspicions wrong. They only served to confirm them, though: all unit tests test against single-line input.