0

サーバー側で SQL クエリを実行すると (サーバーは Python で記述されています)、次のような json が返されます。

return HttpResponse(json.dumps([{"data":output, "total":theResult}]), content_type ='application/json')

output内部メソッドから返された結果であり、次のように既にシリアル化されています。

output = serializers.serialize('json',p_list,fields=('price','publishdate','size'))

クライアント側は正常に応答を受け取りsuccess:^(AFHTTPRequestOperation *operation, id responseObject)、デバッグ コンソールでは次のようになりますAFHTTPRequestOperationManagerresponseObject(lldb)

po responseObject
<__NSCFArray 0x116fa6190>(
{
    data = "[{\"pk\": 817, \"model\": \"xx\", \"fields\": { \"price\": \"3300\", \"publishdate\": \"2014-10-30T00:00:00\", \"size\": 35}}, {\"pk\": 2799, \"model\": \"xx\", \"fields\": { \"price\": \"6250\", \"publishdate\": \"2014-12-08T00:00:00\",\"size\": 0}}]";
    total =     (
       381
    );
}
)

コンソールpo responseObject[0][@"data"][0]でデータ配列を出力し、p responseObject[0][@"total"][0]期待どおりに 381 を出力します

問題:

  1. responseObject[0][@"total"][0]整数にキャストしようとしているコードでは、ガベージ番号を返します
  2. にキャストresponseObject[0][@"data"][0]してNSArray*からカウントまたはその他の操作を実行しようとすると、例外が発生します。'NSInvalidArgumentException', reason: '-[__NSCFString count]: unrecognized selector sent to instance
4

1 に答える 1