2013-04-18 3 views
0

Я пытаюсь загрузить строку JSON с сервера, которая не выглядит так, как должна. жаль что форматирование, первый раз с помощью StackOverflow ..Проблемы с строкой после NSUTF8StringEncoding

Как вы можете видеть, в сравнении с полученной строкой и var_dump из PHP, удаляется ключ от arr[LISTING][<this ones>] .. и поэтому моей дальнейшей расшифровки JSON действительно лечить запись от arr[LISTING][<this one>] как одно значение, а не другое измерение размера массива

Любые идеи?

Что я пробовал:

NSData *serverRes = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 
NSString *serverRes_str=[[NSString alloc]initWithData:serverRes encoding:NSUTF8StringEncoding]; 
NSLog(@"%@",serverRes_str); 

, что это выглядит как:

{"STATUS":{"RESULT":"OK","CODE":205,"INFO":"GET_PROJECTS","AUTHENTICATED":1,"USERID":1,"ACCESS":1000,"SYSTEM_NAME":"Testdatei","SSL":false,"IDENTIFIER":""},"CONTENT":{"GET_PROJECTS":{"COUNT":7,"LISTING":[{"ID":"1","NAME":"Devel","CREATION_DATE":"1357116685","CREATED_BY":"admin","TYPE":"PROJECT","PUBLIC":false,"PRIVAT":false,"ACCESS":3,"THUMBNAIL":""},{"ID":"30","NAME":"p5","CREATION_DATE":"1365866791","CREATED_BY":"admin","TYPE":"PROJECT","PUBLIC":false,"PRIVAT":false,"ACCESS":3,"THUMBNAIL":""},{"ID":"29","NAME":"p4","CREATION_DATE":"1365866785","CREATED_BY":"admin","TYPE":"PROJECT","PUBLIC":false,"PRIVAT":false,"ACCESS":3,"THUMBNAIL":""},{"ID":"28","NAME":"p3","CREATION_DATE":"1365866780","CREATED_BY":"admin","TYPE":"PROJECT","PUBLIC":false,"PRIVAT":false,"ACCESS":3,"THUMBNAIL":""},{"ID":"27","NAME":"p2","CREATION_DATE":"1365866773","CREATED_BY":"admin","TYPE":"PROJECT","PUBLIC":false,"PRIVAT":false,"ACCESS":3,"THUMBNAIL":""},{"ID":"26","NAME":"p1","CREATION_DATE":"1365866767","CREATED_BY":"admin","TYPE":"PROJECT","PUBLIC":false,"PRIVAT":false,"ACCESS":3,"THUMBNAIL":""},{"ID":"4","NAME":"Testimmortals","CREATION_DATE":"1362388820","CREATED_BY":"admin","TYPE":"PROJECT","PUBLIC":false,"PRIVAT":false,"ACCESS":3,"THUMBNAIL":""}]}}} 

, что он должен выглядеть следующим образом:

array(2) { 
    ["COUNT"]=> 
    int(7) 
    ["LISTING"]=> 
    array(7) { 
    [0]=> 
    array(9) { 
     ["ID"]=> 
     string(1) "1" 
     ["NAME"]=> 
     string(5) "Devel" 
     ["CREATION_DATE"]=> 
     string(10) "1357116685" 
     ["CREATED_BY"]=> 
     string(5) "admin" 
     ["TYPE"]=> 
     string(7) "PROJECT" 
     ["PUBLIC"]=> 
     bool(false) 
     ["PRIVAT"]=> 
     bool(false) 
     ["ACCESS"]=> 
     int(3) 
     ["THUMBNAIL"]=> 
     string(92) "" 
    } 
    [1]=> 
    array(9) { 
     ["ID"]=> 
     string(2) "30" 
     ["NAME"]=> 
     string(2) "p5" 
     ["CREATION_DATE"]=> 
     string(10) "1365866791" 
     ["CREATED_BY"]=> 
     string(5) "admin" 
     ["TYPE"]=> 
     string(7) "PROJECT" 
     ["PUBLIC"]=> 
     bool(false) 
     ["PRIVAT"]=> 
     bool(false) 
     ["ACCESS"]=> 
     int(3) 
     ["THUMBNAIL"]=> 
     string(93) "" 
    } 
    [2]=> 
    array(9) { 
     ["ID"]=> 
     string(2) "29" 
     ["NAME"]=> 
     string(2) "p4" 
     ["CREATION_DATE"]=> 
     string(10) "1365866785" 
     ["CREATED_BY"]=> 
     string(5) "admin" 
     ["TYPE"]=> 
     string(7) "PROJECT" 
     ["PUBLIC"]=> 
     bool(false) 
     ["PRIVAT"]=> 
     bool(false) 
     ["ACCESS"]=> 
     int(3) 
     ["THUMBNAIL"]=> 
     string(93) "" 
    } 
    [3]=> 
    array(9) { 
     ["ID"]=> 
     string(2) "28" 
     ["NAME"]=> 
     string(2) "p3" 
     ["CREATION_DATE"]=> 
     string(10) "1365866780" 
     ["CREATED_BY"]=> 
     string(5) "admin" 
     ["TYPE"]=> 
     string(7) "PROJECT" 
     ["PUBLIC"]=> 
     bool(false) 
     ["PRIVAT"]=> 
     bool(false) 
     ["ACCESS"]=> 
     int(3) 
     ["THUMBNAIL"]=> 
     string(93) "" 
    } 
    [4]=> 
    array(9) { 
     ["ID"]=> 
     string(2) "27" 
     ["NAME"]=> 
     string(2) "p2" 
     ["CREATION_DATE"]=> 
     string(10) "1365866773" 
     ["CREATED_BY"]=> 
     string(5) "admin" 
     ["TYPE"]=> 
     string(7) "PROJECT" 
     ["PUBLIC"]=> 
     bool(false) 
     ["PRIVAT"]=> 
     bool(false) 
     ["ACCESS"]=> 
     int(3) 
     ["THUMBNAIL"]=> 
     string(93) "" 
    } 
    [5]=> 
    array(9) { 
     ["ID"]=> 
     string(2) "26" 
     ["NAME"]=> 
     string(2) "p1" 
     ["CREATION_DATE"]=> 
     string(10) "1365866767" 
     ["CREATED_BY"]=> 
     string(5) "admin" 
     ["TYPE"]=> 
     string(7) "PROJECT" 
     ["PUBLIC"]=> 
     bool(false) 
     ["PRIVAT"]=> 
     bool(false) 
     ["ACCESS"]=> 
     int(3) 
     ["THUMBNAIL"]=> 
     string(93) "" 
    } 
    [6]=> 
    array(9) { 
     ["ID"]=> 
     string(1) "4" 
     ["NAME"]=> 
     string(13) "Testimmortals" 
     ["CREATION_DATE"]=> 
     string(10) "1362388820" 
     ["CREATED_BY"]=> 
     string(5) "admin" 
     ["TYPE"]=> 
     string(7) "PROJECT" 
     ["PUBLIC"]=> 
     bool(false) 
     ["PRIVAT"]=> 
     bool(false) 
     ["ACCESS"]=> 
     int(3) 
     ["THUMBNAIL"]=> 
     string(92) "" 
    } 
    } 
} 

ответ

0

Вы пробовали библиотеку JSON, которая поставляется для прошивки ? Он имеет очень удобный метод, как это:

NSArray *responseValues = [responseString JSONValue]; 

или

NSDictionary *responseValues = [responseString JSONValue]; 
  • Вы можете получить его в виде массива или словаря любой другой, потому что JSONValue метод возвращает id, так что вы можете приспособиться к любой вы получаете.

Вы можете найти библиотеку здесь: https://github.com/stig/json-framework

Надеется, что это помогает.

+0

Ну, так как строка уже неверна, это не ошибка декодирования json .. я думаю, что это даже api .. позвольте мне вникать в это .. – user1108319

+0

ОК, похоже, я исправил его -> json_encode ($ array, JSON_FORCE_OBJECT) пропустил эту силу. – user1108319

+0

так что проблема была из вашего php-файла? –

Смежные вопросы