NSUTF8StringEncoding后的字符串问题

时间:2013-04-18 19:32:58

标签: xcode json

我尝试从服务器下载一个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) ""
    }
  }
}

1 个答案:

答案 0 :(得分:0)

您是否尝试过适用于iOS的JSON库? 它有一个非常方便的方法:

NSArray *responseValues = [responseString JSONValue];

NSDictionary *responseValues = [responseString JSONValue];
  • 您可以将其作为数组或字典获取,因为JSONValue方法返回id,因此您可以适应您正在接收的任何内容。

您可以在这里找到图书馆: https://github.com/stig/json-framework

希望它有所帮助。