デコードしたNSDataをNSJSONSerializationクラスで解析出来ない場合の対処方法

あまり一般的な事例ではないですが、Stackoverflowでもはまっている人がいるので備忘に記録しておきます。
NSJSONSerializationクラスで、データをシリアライズすることが出来るのは非常に楽です。しかし私は、CCCryptでデコードしたデータを流してあげると、

2012-****** Error Domain=NSCocoaErrorDomain Code=3840 “The operation couldn’t be completed. (Cocoa error 3840.)” (Garbage at end.) UserInfo=0x6ccdd40 {NSDebugDescription=Garbage at end.}

というエラーが発生して、JSON でシリアライズが出来ませんでした。

こちらを、
NSString* decoded=[request.responseString stringByDecodeFromServer];
decoded=[decoded stringByTrimmingCharactersInSet:[NSCharacterSet controlCharacterSet]];
LOG_S(decoded);
id response =[NSJSONSerialization JSONObjectWithData:[decoded dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingAllowFragments|NSJSONReadingMutableContainers|NSJSONReadingMutableLeaves error:&error];

のように、Trimしてあげると、うまくシリアライズしてあげる様になりました。

このアイディアをいま、実行しているところです。うまく出来るといいですね。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください