私がいるのと同じような状況を見つけることを期待して、ここで質問をまとめましたが、見つけることができませんでした。私の質問は、iOS 5のNSJSONSerializationクラスと、JSONObjectWithData:options:error:メソッドから返された単一の値の解析を処理する方法を扱っています。返されるJSONデータは、次のような配列内の単一の値です。
[1]
データは、使用しているWebサービスで実行されているロジックに応じて、1(上記のように)または0のいずれかになります。ちなみに、WebサービスはWCFRESTサービスです。XCodeでは、逆シリアル化されたJSONが一時的なNSArrayオブジェクトに割り当てられた後、デバッガーは次のように表示します。
po parsedData
(NSArray *) $43 = 0x06e2ee70 <__NSCFArray 0x6e2ee70>( 1 )
ObjectAtIndex:を使用して配列から値を取得しようとすると、次のようになります。
po [parsedData objectAtIndex:0]
(id) $44 = 0x06b1dad0 1
0x06b1dad0
私の質問は:?の前の16進値( )は1
何ですか?たぶん、私がアクセスしていないキーまたはインデックス(実際の値を取得するために配列に十分に踏み込んでいないと思っていました)?JSONのフォーマット方法と関係がありますか?考えていたのですが、フォーマットがずれているような気がします。
私が抱えている問題は、JSONメッセージに格納されている実際の値を取得できないことです。配列内の要素にアクセスしparsedData
て変数に割り当てると、ではなく16進値のみが返されます1
。
NSIntegerにキャストすると、次のようになります。
po (NSInteger)[parsedData objectAtIndex:0]
(NSInteger) $45 = 112319184 1
これについての洞察をいただければ幸いです。これがフォーラムの他の場所で対処されている場合は、お詫び申し上げます。
ありがとう。