繁体   English   中英

iOS错误解析JSON

[英]iOS Error Parsing JSON

我是iOS新手。 我有需要解析的JSON数据:

{  
   "allseries":[  
      {  
         "type":"HR",
         "title":"Heart Rate",
         "xLabel":"Time",
         "yLabel":"Beats per Min",
         "defaultUnit":"BPM",
         "url":"info/info?user=admin%40korrent.com&type=HR",
         "size":18,
         "firstTs":1406755651,
         "lastTs":1406841254
      },
      {  
         "type":"TEMP",
         "title":"Temperature",
         "xLabel":"Time",
         "yLabel":"Temperature",
         "defaultUnit":"F",
         "url":"info/info?user=admin%40korrent.com&type=TEMP",
         "size":6,
         "firstTs":1406854147,
         "lastTs":1406854283
      }
   ],
   "status":"OK"
}

到目前为止,这是我的代码:

NSString *dataReceived= [[NSString alloc] initWithData:_responseData encoding:NSUTF8StringEncoding];
NSLog(@"--> async response data (string): %@", dataReceived);
NSData *jsonData = [dataReceived dataUsingEncoding:NSUTF8StringEncoding];
NSError *jsonError;
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:jsonData options:nil error:&jsonError];
NSLog(@"JSON key and value %@", [dict description]);
NSLog(@" %@ ", dict[@"allseries"]);
NSString *jsonString=dict[@"allseries"];
   if (_programState == 4){
    NSLog(@"state is 4");
    NSLog(@"%@",jsonString);
    NSData *Data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];

但是,代码为此行抛出无效的参数异常:

 NSData *Data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];

更进一步,jsonString似乎完全“无法操作”。 我无法拆分它,不能将字符串追加到它等。那怎么了?

// The following two lines are just for logging and otherwise are not needed.
NSString *dataReceived= [[NSString alloc] initWithData:_responseData encoding:NSUTF8StringEncoding];
NSLog(@"--> async response data (string): %@", dataReceived);

// Deserialize the JSON data into a dictionary
NSError *jsonError;
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData: _responseData options:nil error:&jsonError];
NSLog(@"JSON key and value %@", dict);

// Get the array from the dictionary element "allseries".
NSArray *jsonArray = dict[@"allseries"];
NSLog(@"jsonArray: %@", jsonArray);

这里jsonArray是JSON中“ allseries”的字典数组

您所做的是完全错误的。

dict [@allseries]不是NSString。 它是一个具有两个元素的NSArray,并且两个元素都是NSDictionary。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM