5
{"User":{"id":"42","name":"martin"}}
nilを返すには、しかし、この方法は、完全に有効と思われるこのJSONを返します。NSJSONSerializationはNSStringのに自分のNSDataを変換
誰かが間違いを指摘することができましたか、これが起こっている理由を作ったか、考えてください。
{"User":{"id":"42","name":"martin"}}
nilを返すには、しかし、この方法は、完全に有効と思われるこのJSONを返します。NSJSONSerializationはNSStringのに自分のNSDataを変換
誰かが間違いを指摘することができましたか、これが起こっている理由を作ったか、考えてください。
たとえば、文字列に印刷できない文字があり、データが無効になっていると思います。あなたのデータは無効と見なされた場合、明らかに、それはnil
を返しますが、少なくともあなたはその後NSError* error
変数に間違っているかの説明があります:
はJSONを変換しようとする[NSJSONSerialization JSONObjectWithData:data options:0 error:&error]
メソッドを呼び出して、その後NSError* error
変数を宣言します。
NSData* data = ... // your data
NSError* error = nil; // Declare a variable to hold the error upon return
id obj = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error]; // Try to convert your data
NSLog(@"obj: %@ ; error: %@", error); // Log the decoded object, and the error if any
私はエラーを入れて、それは何とか突然働いていました...どうやらそれは今でも動作します! – Alex
私は同じ問題を抱えていました: '(キャラクタ43579の周囲にエスケープされていない制御キャラクタ)UserInfo = 0x9b78e30 {NSDebugDescription =キャラクタ43579の周囲にエスケープされていない制御キャラクタ。どうすれば修正できますか? – marciokoko
JSONオリジナルデータを修正します。私はあなたが解読しようとしているJSONが最初に有効なJSONデータではなく、エラーが説明しているようにオフセット43579で無効な文字を持っていると思います。 http://jsonlint.org/にJSONを貼り付けて、無効なJSONや不正な形式のJSONなどを確認してください。もしそれが有効なJSONでないなら、あなたは明らかにそのソースから修正する必要があります(このファイルから 'NSData'を読んでいるなら' file.json'の内容を修正するか、WebServerが生成した文字列を修正してくださいこのJSONをこのNSDataなどにあなたのアプリに返すWebサービス)_ – AliSoftware