我尝试从服务器下载一个JSON字符串,它看起来不应该这样。 抱歉格式化,第一次使用stackoverflow ..
正如您在收到的字符串和来自php的var_dump的比较中所看到的,
来自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 :(得分:0)
您是否尝试过适用于iOS的JSON库? 它有一个非常方便的方法:
NSArray *responseValues = [responseString JSONValue];
或
NSDictionary *responseValues = [responseString JSONValue];
JSONValue
方法返回id
,因此您可以适应您正在接收的任何内容。您可以在这里找到图书馆: https://github.com/stig/json-framework
希望它有所帮助。