2013年1月28日月曜日

[iOS]NSJSONSerializationを使ってJSON通信するときのエラー

SBJsonをもともと使っていて、
見たことないエラー( Error is: Unexpected end of inputなど)があまりにも連続してでたんで、
これを機にアップル純正のNSJSONSerializationに乗り換えようということになりました。

結局すぐにつながることができたのですが、
注意点をいくつか。

1.nullの状態で返すとNoMethodError nil:classが起きる

・解決策
nilを入れなおしてあげる

profileはstring型で保存したデータ
if(profile isEqual:[NSNull null]{
  profile =nil;
}



2.json_stringの状態でPUTあるいはPOSTするのではなくNSDataの状態でPUTあるいはPOSTする
これはそのままですね。最後にstringにかえたものを・・と思っていましたが、NSDataの状態のものを送るんだ。どうりで、whitespace(バックスペース)が存在するときにデータがおくれないわけだ(空白スペースができてしまう)。



参考になったページ iosでjsonを使う
[iOS][Web]iPhoneアプリケーションとサーバ間の通信(その3)