2012-06-05 2 views
0

Теперь я пытаюсь использовать POST jpeg-файлы для MySQL через PHP и GET от MySQL до iOS.Parsing JSON от PHP от SBJson

В методе GET я кодирую jpeg (как NSData) и некоторые связанные данные (например, подпись, временную метку) в JSON на PHP-скрипте, используя json_encode().

{"caption":"(captiondata)","img":"(imagedata)","timestamp":"(timestampdata)"} 

Затем я поставил ДАННЫЕ в массив, как,

[{"caption":"(captiondata)","img":"(imagedata)","timestamp":"(timestampdata)"}, 
    {"caption":"(captiondata)","img":"(imagedata)","timestamp":"(timestampdata)"}, 
    ......., 
    {"caption":"(captiondata)","img":"(imagedata)","timestamp":"(timestampdata)"}] 

Я считаю, что может разобрать и получить этот JSON с помощью эха (json_encode()) на PHP и SBJsonParser на прошивке, но ничего не возвращается к моему Приложение. Вот мой код в прошивке. (Также я использую TTURLRequest по Three20)

TTURLRequest* request = [TTURLRequest requestWithURL:url delegate:self]; 
    request.cachePolicy = cachePolicy; 
    TTURLJSONResponse* response = [[[TTURLJSONResponse alloc] init] autorelease]; 
    request.response = response; 
    [request send]; 

    - (void)requestDidFinishLoad:(TTURLRequest*)request { 
     TTURLJSONResponse* response = request.response; 
     NSLog(@"%@",response); 
    } 
+0

Если вы нацеливаетесь на iOS5 +, то рассмотрите использование собственного анализатора JSON от Apple. http://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSJSONSerialization_Class/Reference/Reference.html – Devraj

+0

@Devraj Кажется, это так хорошо. Спасибо за Ваш ответ. – nakazy

+0

Какой результат вы получаете в консоли? попробуйте поставить 'NSLog (@" didFinishLoad уволен "),' чтобы узнать, запущен ли 'requestDidFinishLoad' или нет. – aporat

ответ

0

Вы можете печатать все журналы в requestDidFinishLoad:?

Ответ rootObject от TTURLJSONResponse.

- (void)requestDidFinishLoad:(TTURLRequest*)request { 

    TTURLJSONResponse *response = request.response; 
    NSDictionary *dict = response.rootObject; 
    NSLog(@"dict : %@",dict); 

} 

В вашем случае,

- (void)requestDidFinishLoad:(TTURLRequest*)request { 
    TTURLJSONResponse* response = request.response; 
    NSLog(@"%@",response); 
} 

Ответ может выглядеть <TTURLJSONResponse: 0x125398c0>

Если еще ничего не возвращает, вы можете проверить requestDidFinishLoad: это был вызван, а не выпуск кэш.

+0

Спасибо за ваш ответ. Я изменил свой код и проверил, но PHP возвращает только **() **. Теперь я устанавливаю request.cachePolicy = TTURLRequestCachePolicyNone. – nakazy